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



在芹菜 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),
    }
}

最新更新