如何使用 celery 安排任务在特定时间执行?
我研究过PeriodicTask
,但示例仅涵盖使其重复出现。我正在寻找更像 cron
的能力,可以说“每周一凌晨 1 点执行此任务”
I've looked into PeriodicTask
, but the examples only cover making it recur. I'm looking for something more like cron
's ability to say "execute this task every Monday at 1 a.m."
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
使用
并在任务结束时,将其重新安排到下一次应该运行的时间。
Use
And at the end of your task, reschedule it to the next time it should run.
最近发布的 1.0.3 版本现在支持这一点,感谢 Patrick Altman!
示例:
有关详细信息,请参阅变更日志:
http://celeryproject.org/docs/changelog.html
The recently released version 1.0.3 supports this now, thanks to Patrick Altman!
Example:
See the changelog for more information:
http://celeryproject.org/docs/changelog.html
我刚刚提交了一个补丁来添加 ScheduledTask 来完成一小部分基于时间的调度与基于周期的调度:
https://github.com/celery/celery/commit/e8835f1052bb45a73f9404005c666f2d2b9a9228
I have just submitted a patch to add a ScheduledTask to accomplish a small bit of time based scheduling versus period based:
https://github.com/celery/celery/commit/e8835f1052bb45a73f9404005c666f2d2b9a9228
虽然 @asksol 的答案仍然有效,但 api 已更新。对于 celery 4.1.0,我必须导入 crontab 和 periodic_task ,如下所示:
While @asksol's answer still holds, the api has been updated. For celery 4.1.0, I have to import
crontab
andperiodic_task
as follows: