一尘不染

如何安排任务在特定时间使用celery执行?

django

我研究了PeriodicTask,但是示例仅涉及使其重现。我正在寻找一种类似cron的功能,例如说“每个星期一的凌晨1点执行此任务”的功能。


阅读 646

收藏
2020-03-30

共2个答案

一尘不染

感谢Patrick Altman,最近发布的1.0.3版现在支持此功能。

例:

from celery.task.schedules import crontab
from celery.decorators import periodic_task

@periodic_task(run_every=crontab(hour=7, minute=30, day_of_week="mon"))
def every_monday_morning():
    print("This runs every Monday morning at 7:30a.m.")
2020-03-30
一尘不染

YourTask.apply_async(args=[some, args, here], eta=when)

并且在任务结束时,将其重新安排为下一次应运行。

2020-03-30