在芹菜 4 中>periodic_task
装饰器被弃用。现在的建议是定义初始化芹菜的每个周期性任务(基于我能找到的内容和文档)。
在我的 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())
集中管理定期任务的另一种方法是在设置中定义字典。
CELERY_BEAT_SCHEDULE = {
'some name': {
'task': 'myapp.tasks.do_something',
'schedule': crontab(hour=0, minute=0),
}
}