クラスを継承しており、celery.task.PeriodicTask
このタスクを非同期で実行したい場合があります。
それが通常のメソッドタスクである場合、私は次のようなことをしました:
@periodic_task(run_every=timedelta(minutes=15))
def mytask(additional=False):
if a==b and not additional:
# args = [True,] sets additional=True
mytask.apply_async(args=[True, ], countdown=7*60)
しかし今、私はクラスを持っています:
from celery.task import PeriodicTask
class MyClassTask(PeriodicTask):
def run(self, additional=False):
if a == b and not additional:
self.apply_async(task_id=self.request.id, args=[True, ], countdown=7*60)
編集: コードは正常に動作しています。確認しましたが、質問はもう必要ありません。