Планирование автоматизированных заданий в 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