如何不开始相同的任务并等到芹菜敲打完成

时间:2019-07-01 12:00:35

标签: python celery celerybeat

我已经安排了每3小时运行一次带有芹菜节拍的任务:

'sync_stuff': {
    'task': 'celery_tasks.sync_stuff',
    'schedule': crontab(hour='*/3')
}

有时候完成任务需要超过3个小时,我想确保在旧实例仍在运行时,芹菜不会安排和再次运行任务。

有没有一种方法可以仅使用celery或celerybeat设置?

1 个答案:

答案 0 :(得分:1)

不幸的是,您必须implement a locking strategy yourself

阅读文档的此部分以获取更多详细信息:

  

cron 一样,如果第一个任务在下一个任务之前没有完成,则这些任务可能会重叠。如果您对此感到担忧,则应该使用锁定策略来确保一次只能运行一个实例(例如,请确保确保一次只能执行一个任务)。

来源:

http://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html#entries http://docs.celeryproject.org/en/latest/tutorials/task-cookbook.html#cookbook-task-serial