Я создал приложение, которое состоит из одного издателя, нескольких очередей и нескольких потребителей для каждой очереди.Потребители в очереди (включая очередь) совместно используют канал.Другие очереди используют другой канал.Я наблюдаю, что для разных очередей задачи выполняются параллельно, но для конкретной очереди этого не происходит.Если я публикую несколько сообщений одновременно в определенной очереди, будет работать только один потребитель, в то время как остальные будут ждать окончания работы.Что я должен сделать, чтобы потребители работали параллельно?
workers.each do |worker|
worker.on_delivery() do |delivery_info, metadata, payload|
perform_work(delivery_info, metadata, payload)
end
queue.subscribe_with(worker)
end
Так я регистрирую всех потребителей для определенной очереди.Операция perform_work(_,_,_)
довольно дорогая и занимает несколько секунд.