Проблема с Celery, не получающим задания - Django Ubuntu
У меня возникла проблема с Celery, когда он не отвечает автоматически при загрузке системы. Вот описание моей установки и проблемы:
Настройка:
- Проект Django, использующий Celery для асинхронных задач.
- Рабочие Celery сконфигурированы с помощью декоратора @shared_task.
- Использование Redis в качестве брокера с CELERY_BROKER_URL, установленным на 'redis://localhost'.
- Рабочие Celery настроены на запуск в качестве службы systemd на Ubuntu.
Проблема:
- При загрузке системы Celery запускается автоматически, но асинхронные задачи не выполняются.
- Ручной запуск Celery с помощью команды
home/ubuntu/.venv/bin/celery -A febiox.celery worker -l info -E works
проходит нормально, и задачи выполняются, как ожидалось. - Проверка состояния службы Celery с помощью
sudo systemctl status celery.service
показывает, что служба активна и запущена. - Однако, при попытке проверить активные узлы Celery с помощью
celery -A febiox.celery inspect active
, я получаю сообщение об ошибкеError: No nodes replied within time constraint
. - Интересно, что выполнение той же команды после ручного запуска Celery дает ожидаемый результат, показывая правильный узел.
Конфигурация службы Systemd:
[Unit]
Description=Celery Task Worker
After=network.target
[Service]
Type=simple
User=ubuntu
WorkingDirectory=/home/ubuntu/febiox
ExecStart=/home/ubuntu/.venv/bin/python3 /home/ubuntu/.venv/bin/celery -A febiox.celery worker -l info -E
Restart=always
StandardOutput=file:/var/log/celery/celery.log
StandardError=file:/var/log/celery/celery_error.log
[Install]
WantedBy=multi-user.target
Дополнительная информация:
- Redis получает данные при попытке выполнения задач.
sudo systemctl reload celery.service
не выдает никаких ошибок, но и не решает проблему.sudo systemctl start celery.service
запускает службу без ошибок.sudo systemctl status celery.service
показывает два экземпляра рабочего процесса Celery, что кажется необычным.