2014-07-24 45 views
0

我需要與不同的查詢paramerters特定的域執行了大量的HTTP請求,我打算使用Spring集成的出站網關與配置類似下面的代碼片段:執行與HTTP的出站網關並行請求

<int-http:outbound-gateway id="httpOutboundGateway" request-channel="requestChannel" 
     url="http://www.google.com" http-method="GET" reply-channel="responseChannel" 
     expected-response-type="java.lang.String" charset="UTF-8" reply-timeout="5000" 
     message-converters="" > 
</int-http:outbound-gateway> 

我想使用某個線程池並行執行請求通道中的請求。在這種情況下,我有以下問題:

  1. 將請求通道配置爲ExecutorChannel會自動並行執行請求。
  2. 如果問題1的答案是肯定的,那麼是http:outbound-gateway線程安全。
  3. 如果回答問題1是否定的,如何配置並行

回答

0

執行HTTP請求實際上這取決於上游流動。如果您從同一個線程的循環內的代碼發送到requestChannel,則所有請求都將被逐個串行處理。

如果所有發出的請求都來自最終用戶來自Web,則每個請求都將在該線程內完成。

如果您的上游流是多線程的,則不需要繼續使用ExecutorChannelThreadPool

所有Spring集成組件都是線程安全的。我們全天都在爲那些東西而戰。由於Spring Integration是用於消息傳遞的,我們沒有上下文,所有這些組件都是stateless

HTH