Здравствуйте

Использую для выполнения долгих задач celery. Столкнулся с такой задачей. Имеется Task, который принимает какие-то параметры на входе и делает что-то. Есть 1 параметр, например IP, который может быть одинаков для разных задач. Требуется сделать очередь из задач с одинаковыми IP. Т.е., если нету запущеной задачи с этим IP, то запустить, иначе поставить в очередь и ждать заверешения задачи с таким IP, при этом задачи с отличным IP должны работать параллельно и запускаться.

Как такое реализовать, не совсем понимаю. Думал делать динамически очереди по IP, но как ограничить тогда количество воркеров для очереди?