Периодические задачи не вызываются в Django

Рейтинг: 0Ответов: 0Опубликовано: 02.03.2023

В моём проекте есть периодические задачи. Проблема в том, что они не вызываются.

Я создал тестовую функцию, которая отправляет мне сообщение, и я пойму, что задача выполнена:

def test_crj():
    send_message("Test cronjobs!")

Запуск настроил на раз в 5 минут:

# in settings.py
INSTALLED_APPS = [
    ... ,
    "django_crontab",
]
CRONJOBS = [
    ("*/5 * * * *", "project.cronjob.test_crj", '>> /tmp/test.log'),
]

crontab видит задачи:

> docker exec container python3.9 manage.py crontab show
# Currently active jobs in crontab:
# a35573388f4e46c33f88fc825f0a1d8f -> ('*/5 * * * *', 'project.cronjob.test_crj', '>> /tmp/test.log')

> docker exec container crontab -l
# */5 * * * * /usr/local/bin/python3.9 /app/manage.py crontab run a35573388f4e46c33f88fc825f0a1d8f >> /tmp/test.log # django-cronjobs for project

Но ничего не происходит! При этом запуск функции отдельно (например, в manage.py shell) работает нормально. И если я запускаю командой, которую должен запускать crontab (как я это понимаю), всё работает.

> docker exec container python3.9 manage.py crontab run a35573388f4e46c33f88fc825f0a1d8f
# it works

В чём может быть ошибка и кто виноват - django_crontab или системный crontabИ где и как я могу найти в логах, что именно не работает?

UPD: Я внутри контейнера руками создал задачу /1 * * * * echo 'Hello!' >> /tmp/test.txt, и она корректно отрабатывает.

Также когда внутри контейнера вызываю такое строкой, то тоже всё нормально работает.

/usr/local/bin/python3.9 /app/manage.py crontab run a35573388f4e46c33f88fc825f0a1d8f >> /tmp/test.log # django-cronjobs for project

Но раз в пять минут почему-то упорно не хочет вызываться.

Ответы

Ответов пока нет.