Любые системы очереди заданий, которые позволяют планировать задания по дате?

У меня есть приложение Django.

Одна из моих моделей выглядит так:

class MyModel(models.Model):

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

Каждый раз, когда я обновляю экземпляр MyModel, мне нужно очищать данные через N дней. Поэтому я хотел бы запланировать работу, чтобы позвонить

this_instance.house_cleaning() 

Через N дней.

Есть ли какая-нибудь очередь заданий, которая позволила бы мне:

  • Хорошо интегрируйтесь с Django — позвольте мне вызывать метод отдельных экземпляров модели.
  • Запускайте только те задания, которые запланированы на сегодня
  • В идеале справляться с отказами изящно

Спасибо


person Continuation    schedule 18.08.2010    source источник


Ответы (2)


В вашем случае может подойти django-chronograph. Если вы пишете свои задания по очистке как команды django, то вы планируете их запуск в определенное время. Он запускается с использованием unix cron за сценой.

person ars    schedule 18.08.2010

Есть ли причина, по которой работа cron не будет работать? Или что-то вроде django-cron, который ведет себя так же? довольно просто писать стандартные одни скрипты Django. Если вы хотите инициировать уборку дома при каком-либо изменении вашей модели через определенное количество дней, почему бы не создать в модели флаг даты, который установлен на N дней в будущем, когда задание должно быть запланировано? Вы можете ежедневно запускать скрипт, который извлекает все записи, где дата ‹= сегодня, вызывает метод экземпляра house_cleaning(), а затем очищает поле даты. Если во время процесса возникает исключение, его достаточно легко зарегистрировать или отправить по электронной почте.

person mazelife    schedule 18.08.2010