1

我有一个 Django 应用程序。

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

class MyModel(models.Model):

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

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

this_instance.house_cleaning() 

从现在开始 N 天。

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

  • 与 Django 很好地集成 - 允许我调用单个模型实例的方法
  • 仅运行计划在今天运行的作业
  • 理想地优雅地处理故障

谢谢

4

2 回答 2

3

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

于 2010-08-18T03:26:43.477 回答
2

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

于 2010-08-18T02:00:00.907 回答