У меня есть приложение на Celery, которое имеет несколько рабочих процессов с конвейерной архитектурой и взаимодействует с RabbitMQ.
Последовательность действий выглядит следующим образом:
обучение рабочих -> прогноз рабочих
то есть , обучение работников отправляет задачи в прогноз работника (и ждет результата, чтобы продолжить процесс обучения работников)
Для обучения работников у меня есть 3 реплики, а для прогноза работников — 2 реплики.
Все задачи из обучения работников отправляются в одну очередь в прогнозе работника, называемую Training-forecast-dev
Проблема в том, что методология обучения работников является жадной и охватывает всю доступность прогноза работника, оставляя два других экземпляра обучения работников. без возможности продолжения их течения. Как мне следует подойти/спроектировать очереди в этом случае или какой подход мне следует предпринять, чтобы избежать этого?
Подробнее здесь: https://stackoverflow.com/questions/783 ... -consumers