Планирование автоматизированных заданий в Django

Кто-нибудь знает, как запланировать выполнение скрипта Django на определенную дату и время?

Пример:

Пользователь вводит чью-то контактную информацию на frontend, Django backend получает данные формы, но отправляет контактному лицу письмо только через 48 часов.

У кого-нибудь есть идея? Я видел Cron, но похоже, что Cron должен быть выполнен и не выполняется автоматически сам по себе? Просто нужна помощь в освоении функции планирования.

Вам нужно использовать какой-нибудь фоновый менеджер задач и планировщик.

Celery предназначен для управления и выполнения задач, а Celery Beat поможет запланировать периодические задачи или cron, которые будут выполняться в заданное время.

Установите django-crontab с помощью следующей команды

 pip install django-crontab
   

В файле settings.py вашего проекта django,

INSTALLED_APPS = [
'django_crontab',
...
] 

Создайте файл в любом месте проекта django, например, myapp/cron.py и определите функцию, которую вы хотите выполнять автоматически через cron

def my_cron_job():
    # your functionality goes here 

Добавьте следующую строку в файл settings.py вашего проекта django. [ Это задание cron каждые две минуты]

CRONJOBS = [
    ('*/2 * * * *', 'myapp.cron.my_cron_job')
]

Добавьте все определенные CRONJOBS

python manage.py crontab add

Получить все активные CRONJOBS

python manage.py crontab show

Удалить все определенные CRONJOBS

python manage.py crontab remove

Список всех активных cron

crontab -l
Вернуться на верх