Четкий пошаговый процесс запуска периодической задачи в приложении django

Я долго пытался создать периодическое задание в Django, но есть много ограничений версии и нет четкого объяснения.

4 ответа

Прежде всего, вы хотите создать команду управления, следуя этому руководству. https://docs.djangoproject.com/en/2.1/howto/custom-management-commands/

Скажем, мы хотим запустить closepoll Команда в примере каждые 5 минут. Затем вам нужно будет создать скрипт для запуска этой команды.

Linux / MacOS:

#!/bin/bash -e
cd path/to/your/django/project
source venv/bin/activate  # if you use venv
python manage.py closepoll  # maybe you want to >> /path/to/log so you can log the results

сохранить файл как run_closepoll.sh, бежать chmod +x run_closepoll.sh в командной строке

Теперь мы можем использовать crontab для запуска нашей команды

бежать crontab -e в командной строке добавьте эту строку:*/5 * * * * /path/to/run_closepoll.shТеперь команда будет запускаться каждые 5 минут. Если вы не знакомы с crontab, вы можете использовать этот веб-сайт https://crontab-generator.org/

Окна:

Same content as the above example, but remove the first line and save as run_closepoll.bat

В меню "Пуск" найдите Task Schedulerследуйте инструкциям на графическом интерфейсе, оттуда все должно быть довольно просто.

для получения дополнительной информации о планировщике задач см. здесь: https://docs.microsoft.com/en-us/windows/desktop/taskschd/using-the-task-scheduler

Рекомендую Celery, Что такое сельдерей?

Сельдерей поддерживает планирование задач. Проверьте этот документ

Этот блог объясняет ясно

https://medium.com/@yehandjoe/celery-4-periodic-task-in-django-9f6b5a8c21c7

Спасибо!!!

Я использую django-cron , и он работает так, как ожидалось. Единственное предостережение заключается в том, что вам нужно установить задание Cron в системе Linux для запуска командыpython manage.py runcrons.

Другие вопросы по тегам