0

我在Spring集成DSL配置流程:Spring集成的Java DSL:緩衝的消息流,並把處理程序在單獨的線程

​​

根據日誌,一切都發生順序在線程「主要」。順便說一句,我使用publishSubscribeChannel作爲並行我有兔子發佈者/處理程序,以相同的方式監聽此頻道。

由於數據庫操作需要時間,因此我應該如何正確地處理處理,以便「main」不會變慢。優選地,主線程必須儘快解鎖並且處理應該在工作線程中繼續。我對麼?

我可以在Flow中引入一個緩衝區,它將從publishSubscribeChannel收集消息的突發?

此外,我更喜歡其他線程(池)來處理實際發送,以便從正在執行流的主線程中移除負載。我很清楚Spring中的ThreadPoolTask​​Executor,它們都有一個緩衝區和一個線程池。它是一種很好的使用方式,以及如何以Java DSL方式使用ThreadPoolTask​​Executor?

回答

0

有對此事的構造函數:它喜歡

/** 
* Create a PublishSubscribeChannel that will use an {@link Executor} 
* to invoke the handlers. If this is null, each invocation will occur in 
* the message sender's thread. 
* 
* @param executor The executor. 
*/ 
public PublishSubscribeChannel(Executor executor) { 

http://docs.spring.io/spring-integration/reference/html/messaging-channels-section.html#channel-configuration-pubsubchannel

使用Java DSL你可以聲明:

@Bean 
PublishSubscribeChannel publishSubscribeChannel(Executor executor) { 
    return Channels.publishSubscribe(executor).get(); 
} 
相關問題