У меня возникла следующая проблема, и я ищу некоторые идеи.
У меня есть N производителей работы и M потребителей. N производителей производят работу и помещают ее в Q очередей сообщений, которые контролируются потребителями.
так что у нас есть
N -> -> M In this example N producers put work in a round robin
N -> Q -> M fashion to Q queues which are monitored for new work
N -> -> M in a round robin fashion from M consumers
N -> Q -> M
N -> -> M
N -> Q -> M
N -> -> M
-> M
-> M
Предположим следующий пример:
У N1 есть 100 рабочих элементов для производства N2 есть 1 рабочий элемент для производства N3 есть 1 рабочий элемент для производства
Предположим, что есть Q1 и Q2
N1 отправляет 100 рабочих элементов в Q1 N2 отправляет 1 рабочий элемент в Q2 N3 отправляет 1 рабочий элемент в Q1 (так как это циклический алгоритм)
N3 будет ждать завершения всей работы N1.
Я ищу способ распределить работу между N и M более равномерным и справедливым образом.
Спасибо