2016-05-16 18 views
0

Spring IntegrationのGateway要素には、「default-reply-timeout」属性がありますが、メッセージ自体のデータに基づいてタイムアウト値を設定する方法はありません。可能なタイムアウト値ごとにゲートウェイを作成し、実行時にそのメッセージの適切なゲートウェイを選択できますが、それは明らかに厄介な回避策です。Spring Integration Gatewayのタイムアウト式

リリース4.2ではTCPOutboundGatewayに「remote-timeout-expression」属性が追加されましたが、その変更によってGatewayProxyFactoryBeanに変更されませんでした。

つまり、メッセージ固有の基準でタイムアウトを設定する方法はありますか?そうでない場合、「remote-timeout-expression」属性が、ある時点でGatewayProxyFactoryBeanに移植される予定ですか?

ありがとうございました!

答えて

0

現在、固定値であり、メッセージごとに設定することはできません。

私たちは確かにそうすることを検討することができますが、the release candidate is already outから4.3にすることはできません。

回避策の1つは、ゲートウェイではなくMessagingTemplate秒です。あなたは、あなたのゲートウェイに異なる応答タイムアウトとそれぞれに異なるメソッドを追加することができ、また

Foo result = this.templateWith10SecondTimeout.convertSendAndReceive(bar, Foo.class); 

:あなたは代わりに、ゲートウェイのMessagingTemplate秒、別のタイムアウトで設定した各のコレクションを、設定できます。

public interface GW { 

    Foo waitTenSeconds(Bar bar); 

    Foo waitTwentySeconds(Bar, bar); 

} 

デフォルトのタイムアウトはデフォルトですが、各方法でタイムアウトを設定できます。

+0

すぐにお返事いただきありがとうございます。これらの回避策は当面はまともな解決策のようです。 RemotePropertyFactoryBeanにremote-timeout-expressionを含める限り、私はそのためにできる機能要求はありますか? – alowrey

+0

追跡したい場合は、すでに[JIRA Issue](https://jira.spring.io/browse/INT-4033)を開いています。 –

関連する問題