1

在我的代碼中:spring-integration,分散收集通道在那裏,散射通道使用任務執行程序並行地調用兩個微服務並收集收集通道中的響應。我使用記錄器通道在分散採集通道中記錄請求響應。我可以看到來自兩個服務的響應來收集頻道,但堅持不去下一個頻道。如果我不使用線程(任務執行程序),我懷疑收集通道的發佈策略可能無法正常工作,但同樣工作。建議一些東西。謝謝。任務執行程序不停止

+0

將是巨大的,有一些簡單的代碼從我們身邊玩。聽起來像與Scatter-Gather無關,但在分散階段你會以某種方式丟失相關標題。 –

回答

0

我想你們之間有一些持久的消息存儲,所以replyChannel頭在消息序列化過程中被移除。

我建議您使用<header-enricher>header-channels-to-string選項將replyChannel轉換爲字符串表示形式。

與此同時,您可以在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();