Как получить список задач в очереди в 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()

Но все равно я получаю некоторые ошибки подключения.

Есть идеи?

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