ChunkMessageSannelItemWriterは、Spring Batchリモートチャンキングでどのように応答を収集しますか?

StackOverflow https://stackoverflow.com//questions/24033484

質問

スプリング統合とAMQP(Rabbitmq)を使用してスプリングバッチでリモートチャンキングを実装しようとしています。

ChunkMessageSannelItemWriterは、以下のリモートチャンキングテストでどのように応答を収集するのかを理解できません

https://github.com/spring-projects/spring-batch/blob/master/spring-batch-integration/src/test/resources/org/springframework/batch/統合/チャンク/ remotechunkStepIntegrationTests-context.xml

どのように機能しますか?それは1つのメッセージを送信し、その返信を待って、その返信を受けてからもう一度2番目のメッセージを受信し、2番目のメッセージの返信を待ってから2番目のメッセージの返信などを受け取りますか?

またはそれはすべてのメッセージを非同期的に送信し、返信を待ってから返信チャネルに到着したときに返信を受け取りますか?

ここでリモートチャンキングマニュアルを参照している場合

> http://docs.spring.io/ SPRING-BATCH /リファレンス/ HTML / SpringBatchIntegration.html#非同期プロセッサ

着信アダプタとアウトバウンドアダプタを使用します。 ChunkmessageChannelItemWriterが返信を受け取るのは、なぜアダプタが必要ですか?そしてスレーブ側では、なぜアダプタとサービスアクティベータも使用されていますか?

誰かが文書から理解するのが難しいとどのように機能するかを理解するのを助けてください。

役に立ちましたか?

解決

ただのテストケースです - すべてがローカルに実行されます - JMSテストケースより実物の例です。チャネル項目ライターは、アウトバウンドチャネルアダプタを使用してすべてのチャンクをJMSに送信します。

リモート側(JMSリスナーコンテナ)はチャンクを受け取り、それらを処理し、その応答をrepliesキューに送信します。

ライターがチャンクを書くために呼び出されるたびに、スロットル制限を超えると、必要に応じて返信と中断を確認します。

すべてのチャンクが書き込まれるとき、afterStep()では、残りの結果を待ちます。

チャンクハンドラはキューチャネルに返信を書き込むため、このすべてがローカルテストケースで同じように機能します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top