Я использую Spring Integration с ActiveMQ. Я определил DefaultMessageListenerContainer с maxConcurrentConsumers = 5. На него ссылаются в a. После того, как int-xml: validating-filter и int-xml: unmarshalling-transformer, я определил действие канала очередиInstructionTransformed. И у меня есть подольер для этого канала очереди. Когда я запускаю свое приложение, в консоли ActiveMQ я вижу, что соединение создано и внутри пяти сеансов.Весна Интеграция Несколько пользователей, не обрабатывающих одновременно
Теперь у меня есть @MessageEndpoint
с методом аннотированный
@ServiceActivator(inputChannel = "actionInstructionTransformed", poller = @Poller(value = "customPoller")).
Я получил заявление журнала при входе в метод. Обработка каждого сообщения длительная (несколько минут). В моих журналах я вижу, что thread-1
начинает обработку, а затем я могу видеть только выходы thread-1
. Только когда thread-1
закончил обработку сообщения 1, я вижу, что thread-2
начинает обработку следующего сообщения и т. Д. У меня нет синхронизированного блока внутри моего класса, аннотированного @MessageEndpoint
. Мне не удалось получить thread-1
, thread-2
и т. Д. Сообщения о процессах одновременно.
Неужели кто-то испытал нечто подобное?
Большое спасибо за помощь. Я добавил task-executor = "customTaskExecutor" в мое определение int: poller и <свойство name = "corePoolSize" value = "5" /> У меня теперь есть 5 потоков обработки одновременно. –