Как получить список задач в очереди в Celery на Heroku?
Моя цель - получить активные и зарезервированные задачи на моих рабочих Celery.
Я использую фреймворк Django-Celery-Redis.
Как предложено здесь: Получение списка задач в очереди в Celery
Я сделал следующее, чтобы получить задания:
from your_app.celery import app as my_app
i = my_app.control.inspect()
active_tasks = i.active()
reserved_tasks = i.reserved()
Он хорошо работает в моем локальном окружении.
Хотя онлайн (я использую Heroku), он работает 5% времени & 95% времени я получаю некоторые ошибки.
Я получаю два типа ошибок, которые случайным образом появляются:
raise ConnectionError(str(exc)) from exc
kombu.exceptions.OperationalError: Error 0 connecting to THE_REDIS_SERVER. Error.
Или я получаю None
ответ на свои звонки.
Я попытался настроить некоторые таймауты, потому что по умолчанию control.inspect
имеет timeout = 1.0
.
from your_app.celery import app as my_app
i = my_app.control.inspect(timeout = 4.0)
active_tasks = i.active()
reserved_tasks = i.reserved()
Но все равно я получаю некоторые ошибки подключения.
Есть идеи?