Celery beat отправляет причитающиеся задания, но задания не выполняются

Постановка задачи: Селерейный бит отправляет запланированное задание вовремя. Но рабочий не может получить задание и выполнить его.

Я использую следующую версию celery

django-celery-beat==2.2.0
celery==4.4.0
django-celery==3.3.0

Команда используется для celery-beat

celery -A project_path.dev beat -l info --scheduler django_celery_beat.schedulers:DatabaseScheduler

Команда используется для celery-worker

celery worker -A project_path.dev --pool=solo -Q celery -l info

task.py

@periodic_task(run_every=(crontab(minute='*/30')),
               options={'queue': settings.CELERY_QUEUES_DICT["celery-periodic"]})
def celery_task():
    print("Executing Task")

журналыcelery-beat:

[2022-07-03 23:00:00,501: INFO/MainProcess] Scheduler: Sending due task path.to.celery_task (path.to.celery_task)

celery-dev logs:

[tasks]
  . path.to.celery_task

Я вижу, что пара других задач не выполняется. Могу ли я получить помощь, чтобы разобраться в проблеме?

Ваша команда worker -Q celery указала, что worker обрабатывает только задания в очереди celery. Но очередь в вашей постановке задачи - settings.CELERY_QUEUES_DICT["celery-periodic"]. Вам следует проверить, указывают ли они на одну и ту же очередь

Нашел проблему. В упомянутой очереди было около 120k ожидающих обработки сообщений. Отсюда и возникла эта проблема.

Функция

print не работает в celery, вы должны использовать:

logger.info("Executing Task")

вместо:

print("Executing Task")
Вернуться на верх