Добрый день.
Изучаю Python, работу очередей. Смотрю в сторону Celery.
Суть в следующем. Есть задача организовать обработку входящих сообщений. Схематично все представлено ниже на Рисунке 1.
Нужно распределять входящие сообщения по Воркерам для обработки и дальнейшей передачи другой программе. Но есть ограничение -- в один момент времени для конкретного devID может выполняться только одна обработка. Т.е. если Воркер еще не обработал прошлое сообщение для какого-то devID, а уже пришло новое сообщение с данным devID, то оно должно ожидать завершения обработки прошлого сообщения. По сути получается двойная очередь: по devID и по Воркерам.
Не пойму, как это осуществить через Celery. Или может вообще не в ту сторону копаю?
Рисунок 1.