1

私のコードでは、バネ統合、スキャッターチャネルがあり、スキャッターチャネルはタスク実行プログラムを使用して2つのマイクロサービスを並列に呼び出し、ギャザーチャネルで応答を収集します。私はロガーチャンネルを使用してスキャッターギャザーチャンネルでリクエスト応答を記録しました。私は2つのサービスからの応答がチャネルを集めるために来たが、次のチャネルに行かないということに気付くことができる。私はギャザーチャンネルのリリース戦略がうまくいかないかもしれないと思っていますが、スレッドを使わないと同じことが働いています(タスク実行者)。何かを提案する。ありがとう。タスク実行者が停止していません

+0

我々の側から再生するには、いくつかの簡単なコードを持っているのは素晴らしいことでしょう。スキャッターギャザーに関係ないように聞こえるが、スキャッターフェイズ中に相関ヘッダーが失われることがあります。 –

答えて

0

メッセージのシリアル化中にreplyChannelヘッダーが削除されるため、永続的なメッセージストアがあると思います。

replyChannelを文字列表現に変換する場合は、header-channels-to-stringオプションを使用して<header-enricher>を使用することをおすすめします。

この問題については、Scatter-Gatherで自由にJIRAを発行することができます。それはgatherResultChannelのために今そこに右であるように、私たちは、アウト・オブ・ボックス機能として、その文字列の変換を行うことができます。

PollableChannel gatherResultChannel = new QueueChannel(); 

Object gatherResultChannelName = this.replyChannelRegistry.channelToChannelName(gatherResultChannel); 

Message<?> scatterMessage = getMessageBuilderFactory() 
      .fromMessage(requestMessage) 
      .setHeader(GATHER_RESULT_CHANNEL, gatherResultChannelName) 
      .setReplyChannel(this.gatherChannel) 
      .build(); 
関連する問題