Сельдерей с брокером Redis в Django: задачи успешно выполняются, но остается слишком много постоянных ключей Redis и соединений - PullRequest
0 голосов
/ 17 января 2019

Наш сервер Python (Django 1.11.17) использует Celery 4.2.1 с Redis в качестве брокера (пакет pip redis, который мы используем, - 3.0.1). Приложение Django развернуто в Heroku, а брокер Celery был настроен с использованием дополнения Heroku Redis Cloud.

Задачи Celery, которые у нас есть, должны быть выполнены за одну минуту (среднее время завершения ~ 100 мс), но мы видим, что ключи и соединения Redis сохраняются гораздо дольше (до 24 часов) , В противном случае задачи выполняются правильно.

Что может происходить из-за этих постоянных ключей и соединений в нашем брокере Redis? Как мы можем очистить их, когда задачи Celery завершатся?

Вот скриншот Redis Labs о том, как это происходит (все задачи должны быть выполнены, поэтому мы ожидаем нулевые ключи и нулевые подключения):

Redis Labs screenshot

1 Ответ

0 голосов
/ 21 января 2019

Решил мой собственный вопрос: если для переменной конфигурации CELERY_IGNORE_RESULT установлено значение True (что я могу сделать, потому что я не использую никаких возвращаемых значений из своих задач), то ключи и соединения возвращаются под контролем.

Источник: Проектная документация по сельдерею

...