任何允许按日期安排作业的作业队列系统?

时间:2010-08-18 00:06:09

标签: django message-queue scheduled-tasks delayed-job job-queue

我有一个Django应用程序。

我的一个模型看起来像这样:

class MyModel(models.Model):

    def house_cleaning(self):
    // cleaning up data of the model instance

每当我更新MyModel的实例时,我都需要在N天后清理数据。所以我想安排一份工作来打电话

this_instance.house_cleaning() 

从现在起N天。

是否有任何工作队列可以让我:

  • 与Django很好地集成 - 允许我调用单个模型实例的方法
  • 仅运行计划今天运行的作业
  • 理想情况下妥善处理失败

由于

2 个答案:

答案 0 :(得分:3)

django-chronograph可能对您的用例有用。如果您将清理作业写为django命令,那么您可以将它们安排在某个时间运行。它在场景后面使用unix cron运行。

答案 1 :(得分:2)

有没有理由说cron工作不起作用?或类似django-cron的行为方式相同?编写独立的Django脚本是pretty easy。如果您想在特定天数后对模型进行某些更改时触发房屋清洁,为什么不在模型中创建日期标志,该日期标志设置为将来需要安排作业时的N天?您可以每天运行一个脚本,它会提取日期为< = today的所有记录,调用实例的house_cleaning()方法,然后清除日期字段。如果在此过程中引发异常,则可以轻松记录或发送电子邮件。