使用 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 【问题描述】:

我有两个任务 - ab

任务 a 在完成上一个任务 a 后 5 分钟内运行。

任务 b 在完成上一个任务 b 后 3 分钟内运行。

我该如何实现它?我正在使用python 3.6.8Django 2.2.6celery 4.3.0

【问题讨论】:

【参考方案1】:

简短的回答是您不能使用 celery beat 执行此操作,因为 celery beat 会在任务开始时触发,而不是在任务结束时触发。如果您绝对需要在上一个任务结束后三分钟执行此操作,建议您只需在 ab 的末尾添加对 .apply_async 的调用,并开始每个任务一次。

【讨论】:

以上是关于使用 celery-beat 完成上一个任务后,如何在 5 分钟内运行任务?的主要内容,如果未能解决你的问题,请参考以下文章