Задача Celery задерживается при выполнении другой задачи, как убедиться в многопоточности?
У нас есть celery worker и beat scheduler, работающие на производстве, в выделенном Kubernetes POD. Мы использовали gevent и запустили celery с параллелизмом, установленным на 200.
celery -A app worker -l info --pool=gevent --concurrency=200
Недавно нам понадобилось, чтобы периодическая задача срабатывала каждые 5 секунд. Но когда в процессе выполнения находится другая задача celery (особенно те, которые взаимодействуют с базой данных), мы заметили, что задача сильно задерживается. Проверяя beat-scheduler, задачи отправляются каждые 5 секунд без проблем, но они ждут в брокере. Мы надеялись, что на эту периодическую задачу не влияют другие задачи, поскольку мы использовали параллелизм.
Пожалуйста, посмотрите скриншот журнала
Нам нужно убедиться, что эта задача выполняется каждые 5 секунд независимо от других задач.