芹菜是否支持两个任务之间的固定间隔?
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 分钟执行一次 运行 任务。如果您手动触发任务,它将与调度程序执行的任务并行执行并可能执行一段时间运行。
不过你可以做的是,通过使用分布式锁来防止任务运行并行执行,如果你需要的话。
或者,您可以编写自己的具有此功能的调度程序。
我正在处理 celery 计划任务,但遇到了问题。
假设有一个计划任务,每 5 分钟 运行s。
而且这个任务可以在我的一些 API,
中手动执行我总是希望这个任务的间隔是 5 分钟。
例如,如果此任务在 8:00、
自动执行并且在 8:01 我第二次执行了这个任务,
现在我想要下一次 Celery auto 运行 这次在 8:06。
那么在 Celery 中有什么方法可以做到这一点吗?
没有。它不是。 Celery beat(调度程序)将每 5 分钟执行一次 运行 任务。如果您手动触发任务,它将与调度程序执行的任务并行执行并可能执行一段时间运行。
不过你可以做的是,通过使用分布式锁来防止任务运行并行执行,如果你需要的话。
或者,您可以编写自己的具有此功能的调度程序。