Любые системы очереди работы, которые позволяют планированию заданий по дате?
-
29-09-2019 - |
Вопрос
У меня есть приложение Django.
Одна из моих моделей выглядит так:
class MyModel(models.Model):
def house_cleaning(self):
// cleaning up data of the model instance
Каждый раз, когда я обновляю экземпляр MyModel, мне нужно было очистить данные и несколько дней спустя. Так что я хотел бы запланировать работу, чтобы позвонить
this_instance.house_cleaning()
N дней спустя.
Есть ли какая -либо очередь работы, которая позволила бы мне:
- Хорошо интегрируйтесь с Django - Позвольте мне назвать метод отдельных экземпляров модели
- Запустите только работу, которые планируются сегодня
- Идеально обрабатывать сбои изящно
Спасибо
Решение
Джанго-хронограф может быть полезен для вашего варианта использования. Если вы пишете свои задания по очистке в качестве команд Django, вы планируете их работать в какое -то время. Он работает, используя Unix Cron за сценой.
Другие советы
Есть ли какие-либо причина, почему работа CRON не будет работать? Или что-то вроде Django-Cron который ведет себя так же? Это довольно легко написать автономные сценарии Django. Если вы хотите вызвать уборку House в некоторых изменениях к вам модели после определенного количества дней, почему бы не создать флаг даты в модели, которая устанавливается на N Days в будущем, когда задача должна быть запланирована? Вы можете запустить скрипт на ежедневной основе, который тянет все записи, где дата <= сегодня, вызывает экземпляр house_cleaning()
Метод, а затем очищает поле даты. Если исключение поднимается во время процесса, достаточно легко зарегистрировать его или отправить электронную почту.