【问题标题】:Service for Scheduling Tasks任务调度服务
【发布时间】:2012-08-30 14:55:12
【问题描述】:

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

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

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

【问题讨论】:

    标签: python cron scheduled-tasks amqp


    【解决方案1】:

    Celery 解决了这个问题。

    celery.schedules 允许您定义周期性任务。您可以覆盖is_due 来执行schedule once a month 之类的操作。您可以使用periodic_taskcelery-beatschedule tasks to execute at a specific time(我相信这是现在的标准方法)。还有一种方法是使用eta 参数到Task.apply_async

    【讨论】:

    • Celery 似乎是一个非常重量级的解决方案。还有很多我们永远不会使用的附加功能。我会进一步研究 Celery - 也许我们可以用其他方式使用它。
    猜你喜欢
    • 1970-01-01
    • 2020-01-02
    • 1970-01-01
    • 1970-01-01
    • 2013-10-04
    • 1970-01-01
    • 2020-11-19
    • 2011-02-10
    • 1970-01-01
    相关资源
    最近更新 更多