我正在使用Spring集成ActiveMQ。我用maxConcurrentConsumers = 5定義了一個DefaultMessageListenerContainer。它在a中被引用。在int-xml:validating-filter和int-xml:unmarshalling-transformer之後,我定義了一個隊列通道actionInstructionTransformed。我有這個隊列頻道的輪詢。當我啓動我的應用程序時,在ActiveMQ控制檯中,我可以看到連接已創建並在五個會話中。現在春季集成多個消費者不同時處理
,我有帶註釋
@ServiceActivator(inputChannel = "actionInstructionTransformed", poller = @Poller(value = "customPoller")).
我有在方法入口日誌語句的方法@MessageEndpoint
。處理每條消息很長(幾分鐘)。在我的日誌中,我可以看到thread-1
開始處理,然後我只能看到thread-1
輸出。只有當thread-1
完成處理1條消息後,我才能看到thread-2
開始處理下一條消息等。我的課程中沒有任何同步塊,註釋爲@MessageEndpoint
。我沒有設法同時獲得thread-1
,thread-2
等進程消息。
有人經歷過類似的事嗎?
非常感謝您的幫助。我添加了task-executor =「customTaskExecutor」給我的int:poller定義和 我現在有5個線程併發處理。 –