1

我们需要一个可以用来安排事件的服务。例如,我们可能有一项任务需要在 3 点钟运行(一次)或每 2 小时运行一次(多次)。最好每个任务都可以配置一个 AMQP 队列,它将发布到该队列。

我们可以通过创建 OS 计时器事件轻松实现这一点。我担心的是如果这项服务出现故障,如何恢复。如果它允许即时调度,我们可以使用 CRON。

我一直在寻找一种方法来避免重新发明轮子。如果还没有一个项目可以做到这一点,我们将创建一个。不过,这是一件很常见的事情,所以如果现在还没有人把它放在那里,我会感到惊讶。

4

1 回答 1

2

芹菜解决了这个问题。

celery.schedules让你定义周期性任务。你可以覆盖is_due做一些事情,比如每月安排一次。您可以使用或celery-beat(我相信这是现在的标准方法)安排任务在特定时间执行。另一种方法是使用Task.apply_async的参数。periodic_tasketa

于 2012-09-05T20:16:34.360 回答