使用 celery-beat 完成上一个任务后,如何在 5 分钟内运行任务?
Posted
技术标签:
【中文标题】使用 celery-beat 完成上一个任务后,如何在 5 分钟内运行任务?【英文标题】:How can to run task in 5 minutes after finish previous task using celery-beat? 【发布时间】:2020-02-26 00:18:57 【问题描述】:我有两个任务 - a
和 b
。
任务 a
在完成上一个任务 a
后 5 分钟内运行。
任务 b
在完成上一个任务 b
后 3 分钟内运行。
我该如何实现它?我正在使用python 3.6.8
、Django 2.2.6
和celery 4.3.0
?
【问题讨论】:
【参考方案1】:简短的回答是您不能使用 celery beat 执行此操作,因为 celery beat 会在任务开始时触发,而不是在任务结束时触发。如果您绝对需要在上一个任务结束后三分钟执行此操作,建议您只需在 a
和 b
的末尾添加对 .apply_async
的调用,并开始每个任务一次。
【讨论】:
以上是关于使用 celery-beat 完成上一个任务后,如何在 5 分钟内运行任务?的主要内容,如果未能解决你的问题,请参考以下文章
Django celery 和 celery-beat 守护进程脚本错误