Как вручную создать задание cron для запуска сценария Django?
Я пытался запустить некоторый код в качестве задания cron с помощью Django. Существует множество пакетов пакетов, которые помогают сделать это, но они, похоже, не поддерживают последнюю версию Django (4.0). Вместо того, чтобы продолжать поиск пакетов, я хотел бы узнать, возможно ли просто написать скрипт python в структуре папок Django и вручную настроить задание cron для его запуска. Что-то вроде настройки:
*/30 * * * * python3.8 /var/djangoproject/crons/cron.py
Возможно ли это? Есть ли какие-либо недостатки или риски в том, чтобы сделать это таким образом, а не использовать пакет, созданный для этого? Я не вижу, чтобы кто-то рекомендовал это, поэтому прежде чем реализовать это, я хотел бы узнать, хорошая ли это идея.
Оказывается, это довольно просто, и может быть достигнуто с помощью пользовательских команд django-admin. В основном вы добавляете папку management/commands
в проект, и добавляете в эту папку python скрипт с определенной структурой (см. документацию). Скажем, вы называете файл cron.py
. Тогда cron может быть настроен следующим образом:
*/30 * * * * python3.8 /var/djangoproject/manage.py cron