Заморозка задачи Celery + django + supervisor + redis

У меня есть приложение Django, обслуживаемое Gunicorn с Celery, использующим celery-beat, которое запускается Supervisord

Задача Сельдерея иногда зависает (может быть раз в неделю)

Версии программного обеспечения:

Redis server v=4.0.9 
celery 5.1.2 
django  3.2       
django-celery-beat  2.2.1    

Я размещаю файлы конфигурации здесь https://gist.github.com/SergSm/43a1554b57968c5e35776ad55fdcf0ab

Что я делаю


Каждый раз, когда задача замерзает, я запускаю celery -A app inspect active, чтобы увидеть id замерзшей задачи

затем я запускаю python manage.py shell в моей директории django, чтобы увидеть состояние запущенной задачи

>>> from app.celery import app
>>> from celery.result import AsyncResult
>>> result = AsyncResult(id='9bf01312-c2ff-4b1e-9fd5-6fa6b0c458f2', app=app)
>>> result.state
'PENDING'

задание находится в стадии выполнения и не может быть завершено даже путем выполнения sudo supervisorctl stop latest_conf_celery

поэтому я должен убить -9 все процессы Celery

У меня есть подозрение, что причина может быть в имени рабочего, порожденного gunicorn. Я сделал этот вывод из-за того, что когда я выполняю ps -aux | grep celery. я вижу:

serg      8641  0.2  8.4 262284 84948 ?        Sl   10:09   0:05 /home/serg/.cache/pypoetry/virtualenvs/latest-config-1c-lST7exov-py3.9/bin/python /home/serg/.cache/pypoetry/virtualenvs/latest-config-1c-lST7exov-py3.9/bin/celery -A app worker -P threads --beat -S django.schedule -l INFO
serg      8643  0.0  7.6 185800 76804 ?        S    10:09   0:01 /home/serg/.cache/pypoetry/virtualenvs/latest-config-1c-lST7exov-py3.9/bin/python /home/serg/.cache/pypoetry/virtualenvs/latest-config-1c-lST7exov-py3.9/bin/celery -A app worker -P threads --beat -S django.schedule -l INFO

Возможно, эти процессы имеют какой-то конфликт.

Мое другое предположение, что существует какой-то конфликт ввода-вывода, когда один процесс блокирует сокет или файл журнала.

Файлы журналов Celery не дают никакой информации об этом


Итак, вопрос в следующем: как я могу отладить эти замораживания Celery?

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