Как настроить обновление записей в django по расписанию?

Есть модель, у которой есть foo = models.DateField(...). Как сделать так, чтобы при наступлении этой даты выполнялась функция bar(self)?
  • Вопрос задан
  • 2740 просмотров
Решения вопроса 1
Существует минимум два варианта.

  1. Создаёте management command, которая выполняет нужное действие. Пусть вы её назвали process. При запуске она должна запросом выбирать все модели, для которых уже наступило время выполнять bar(), и обрабатывает их. Затем настраиваете запуск этой команды в cron.
  2. Либо настраиваете Celery, который тоже умеет выполнять задания по расписанию.


Выбор конкретного варианта зависит от особенностей проекта и ваших личных предпочтений. Если вам не нужно много фоновых задач и расписаний, хочется удобно запускать процедуру вручную из командной строки - то первый вариант проще.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы