Я пытаюсь написать многопоточную реализацию для обработки сообщений JMS из очереди.Многопоточный прием JMS весной
Я пробовал с классами DefaultMessageListenerContainer и SimpleMessageListenerContainer.
Проблема заключается в том, что кажется, что только один экземпляр класса MessageListener получает экземпляр, независимо от того, как я его настраиваю. Это заставляет меня излишне писать безстоящие или потокобезопасные реализации MessageListener, так как у меня есть ListenerContainer, настроенный на использование нескольких потоков (concurrentConsumers = 8).
Есть ли очевидное решение для этого, что я не замечаю?
Не понимаю. Я делаю свой MessageListener. Я просто хочу, чтобы он использовал многоядерные процессоры моей машины для параллельной обработки. –
@Iker: Да, и MessageListenerContainer создаст несколько потоков для этого, со всеми потоками, использующими один и тот же экземпляр вашего MessageListener. Нерест нескольких слушателей неэффективен и не нужен. – skaffman
Хорошо, я понимаю. Но скажем, что для каждого сообщения JMS вам нужно обработать задание, которое занимает несколько секунд. Я хочу иметь возможность использовать полностью отдельный набор экземпляров для обработки каждого из сообщений. Должен ли я порождать потоки из MessageListener? –