Наш сервер 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 о том, как это происходит (все задачи должны быть выполнены, поэтому мы ожидаем нулевые ключи и нулевые подключения):
