调度任务的服务

时间:2012-09-05 20:12:23

标签: python cron scheduled-tasks amqp

我们需要一项可用于安排活动的服务。例如,我们可能需要在3点(一次)运行或每2小时运行一次(多次)。优选地,每个任务可以配置有将要发布到的AMQP队列。

我们可以通过创建OS计时器事件轻松实现这一点。我关心的是如果这项服务失败了如何恢复。如果它是允许即时安排的话,我们可以使用CRON。

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

1 个答案:

答案 0 :(得分:2)

Celery解决了这个问题。

celery.schedules可让您定义定期任务。您可以覆盖is_due来执行schedule once a month之类的操作。您可以schedule tasks to execute at a specific time使用periodic_taskcelery-beat(我认为现在是标准方法)。另一种方法是将eta参数用于Task.apply_async