芹菜是否支持两个任务之间的固定间隔?

does celery support a fixed interval between two tasks?

我正在处理 celery 计划任务,但遇到了问题。

假设有一个计划任务,每 5 分钟 运行s。

而且这个任务可以在我的一些 API,

中手动执行

我总是希望这个任务的间隔是 5 分钟。

例如,如果此任务在 8:00、

自动执行

并且在 8:01 我第二次执行了这个任务,

现在我想要下一次 Celery auto 运行 这次在 8:06。

那么在 Celery 中有什么方法可以做到这一点吗?

没有。它不是。 Celery beat(调度程序)将每 5 分钟执行一次 运行 任务。如果您手动触发任务,它将与调度程序执行的任务并行执行并可能执行一段时间运行。

不过你可以做的是,通过使用分布式锁来防止任务运行并行执行,如果你需要的话。

或者,您可以编写自己的具有此功能的调度程序。