Celery Beat Task зависает без ошибок

У меня есть приложение Django, и я использую Celery Beat для периодического запуска задачи. Если я вызываю задачу при запуске Celery, она выполняется без ошибок:

app/tasks.py

...
@task(name='task1')
def func():
    # Some code

func.run()
...

Если я затем запускаю Celery celery -A project worker -l info, задача выполняется без ошибок. Проблема возникает, когда я пытаюсь запустить ту же задачу с помощью Celery Beat, представьте, что у меня есть следующее расписание:

app.conf.beat_schedule = {
    'some_task': {
        'task': 'task1',
        'schedule': crontab(minute=30, hour='22')
    }
}

Эта задача должна выполняться каждый день на 22:30, и она выполняется, задача запускается, но затем зависает, ничего не регистрируя, я не могу понять корень проблемы, это не ошибка памяти, я уже проверил это, и задача работает нормально на моей локальной машине с помощью Celery Beat. Я также пытался использовать Celery Beat Daemon, но задача продолжает зависать при каждом запуске. Я не могу понять, что происходит, есть какие-нибудь предложения?

Используйте декоратор app.task или shared_task для вашей задачи. Без экземпляра приложения celery beat не будет вызывать задачу с правильной сигнатурой задачи, которую сможет распознать приложение celery. Вы можете найти документацию о том, как написать базовую задачу здесь.

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