ChunkMessageSannelItemWriterは、Spring Batchリモートチャンキングでどのように応答を収集しますか?
-
21-12-2019 - |
質問
スプリング統合とAMQP(Rabbitmq)を使用してスプリングバッチでリモートチャンキングを実装しようとしています。
ChunkMessageSannelItemWriterは、以下のリモートチャンキングテストでどのように応答を収集するのかを理解できません
どのように機能しますか?それは1つのメッセージを送信し、その返信を待って、その返信を受けてからもう一度2番目のメッセージを受信し、2番目のメッセージの返信を待ってから2番目のメッセージの返信などを受け取りますか?
またはそれはすべてのメッセージを非同期的に送信し、返信を待ってから返信チャネルに到着したときに返信を受け取りますか?
ここでリモートチャンキングマニュアルを参照している場合
> http://docs.spring.io/ SPRING-BATCH /リファレンス/ HTML / SpringBatchIntegration.html#非同期プロセッサ
着信アダプタとアウトバウンドアダプタを使用します。 ChunkmessageChannelItemWriterが返信を受け取るのは、なぜアダプタが必要ですか?そしてスレーブ側では、なぜアダプタとサービスアクティベータも使用されていますか?
誰かが文書から理解するのが難しいとどのように機能するかを理解するのを助けてください。
解決
ただのテストケースです - すべてがローカルに実行されます - JMSテストケースより実物の例です。チャネル項目ライターは、アウトバウンドチャネルアダプタを使用してすべてのチャンクをJMSに送信します。
リモート側(JMSリスナーコンテナ)はチャンクを受け取り、それらを処理し、その応答をreplies
キューに送信します。
ライターがチャンクを書くために呼び出されるたびに、スロットル制限を超えると、必要に応じて返信と中断を確認します。
すべてのチャンクが書き込まれるとき、afterStep()
では、残りの結果を待ちます。