@abbrakadabbra

Как оптимизировать Celery+Redis?

В проекте (на Django) используется Celery для генерации отчетов, отправки сообщений, периодические таски и т.д. На периодические таски прописаны свои task_routes, на shared/task свои. Однако на production мы столкнулись с проблемой, что вочередь занимает большое кол-во мелких задач, из-за которых с большой задержкой выполняются другие.

Как лучше всего организовать очередь, настроить Celery/Redis или что ещё можно сделать чтобы таски выполнялись с меньшими задержками?

Celery worker запущены с concurrency 4, auto_scale 8,32
  • Вопрос задан
  • 223 просмотра
Пригласить эксперта
Ответы на вопрос 2
alternativshik
@alternativshik
больше воркеров, больше очередей.
Ответ написан
Вам нужно под приоритетные задачи выделить отдельную очередь(очереди), а все остальное обрабатывать отдельно. Таким образом мелкие не будут блокировать важные
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы