2016-04-12 17 views
2

タイムアウト属性を持つSpring受信者リストルータは誰でも使用されますか?Spring統合 - 受信者リストルータのタイムアウト

<int:recipient-list-router id="customRouter" input-channel="routingChannel" 
     timeout="1234" 
     ignore-send-failures="true" 
     apply-sequence="true"> 
    <int:recipient channel="channel1"/> 
    <int:recipient channel="channel2"/> 
</int:recipient-list-router> 

タイムアウト: タイムアウト属性は、ターゲットメッセージチャネルにメッセージを送信するときに、待機する時間をミリ秒単位での最大量を指定します。デフォルトでは、送信操作は無期限にブロックされます。

が次のチャンネルに移動する前に、を待つのに適した時間を把握しようとしています。 bounded queue channelフレーズに

<xsd:attribute name="timeout" type="xsd:string"> 
     <xsd:annotation> 
      <xsd:documentation> 
       Specify the maximum amount of time in milliseconds to wait 
       when sending Messages to the target MessageChannels if blocking 
       is possible (e.g. a bounded queue channel that is currently full). 
       By default the send will block indefinitely. 
       DEPRECATED in favor of 'send-timeout' for consistency with other elements. 
      </xsd:documentation> 
     </xsd:annotation> 
    </xsd:attribute> 

ご注意:

+0

出力チャンネルは何ですか?キューではない場合(有限のサイズ)、タイムアウトを設定する必要はありません。 –

+0

その待ち行列チャネル、私は待っている時間の良い量は何ですか? –

答えて

2

は今のところ、それは次のように聞こえます。したがって、ターゲットチャンネルがサイズQueueChannelで制限されている場合にのみ、MessagingTemplateによって適用されます。

チャンネルがDirectChannelの場合、になる可能性はありません。ちょうどAbstractMessageRouterが単純なloopのロジックであり、sendなので、同じスレッドで処理プロセスが実行されるからです。

+0

その待ち行列チャネル、私は待っている時間の良い量は何ですか? –

+2

ええと... TimeoutExceptionを発生させる前に待つのが合理的な時間です。 HTTPクライアントまたは任意のTCP/IP対話で同じシナリオを検討してください。私は見てより良い方法は、送信者です:どのように彼があなたから戻って待つことが適切であると言うでしょう。だから、実際にはターゲットアプリケーションに依存しており、そのオプションはあなたが私たちから聞きたいと思う一般的なレシピに合わない。 –

+1

@PrasadParavatha:あなたがあまりにも長い間それをブロックしないで、あなたはあまりにもすぐにパッケージを落とさない場所に待つのが良い時間です:)) –

関連する問題