在应用程序内的celery(django)中添加定期任务

时间:2017-01-17 12:35:55

标签: python django celery

芹菜4>不推荐使用periodic_task装饰器。现在的建议是定义初始化芹菜的每个周期性任务(根据我能找到的内容和docs)。

在我的django设置中,我有很多小应用程序,并且有一个设置期间任务的中心位置不会做。

我仍在学习芹菜的方法,但我认为我的解决方案是好的"。 这是解决这个问题的错误方法,还是现在periodic_task已经消失了?

from celery.schedules import crontab
from lib.celery_instance import app  # The celery instance

@app.task()
def mytask():
    # do something...
    return 123

app.add_periodic_task(crontab(hour=8, minute=45), mytask.s())

1 个答案:

答案 0 :(得分:1)

集中管理周期性任务的另一种方法可能是在设置中定义一个字典。

CELERY_BEAT_SCHEDULE = {
    'some name': {
        'task': 'myapp.tasks.do_something',
        'schedule':  crontab(hour=0, minute=0),
    }
}