我想在另一組任務結束時動態地安排與芹菜的定期任務。芹菜 - 在另一任務結束時安排定期任務
我知道如何創建(靜態)與芹菜週期性任務:
CELERYBEAT_SCHEDULE = {
'poll_actions': {
'task': 'tasks.poll_actions',
'schedule': timedelta(seconds=5)
}
}
但我想從我的任務動態創建定期作業(也許有辦法阻止那些週期性的作業時,一些條件實現(所有任務完成)
喜歡的東西:
@celery.task
def run(ids):
group(prepare.s(id) for id in ids) | execute.s(ids) | poll.s(ids, schedule=timedelta(seconds=5))
@celery.task
def prepare(id):
...
@celery.task
def execute(id):
...
@celery.task
def poll(ids):
# This task has to be schedulable on demand
...