我们有一个要求,我需要在两个不同的渠道中处理相同的消息(有效负载)。我们的印象是,使用 PubliSHSubscribe 频道将通过将消息复制到两个频道来帮助我们处理这个问题。然而,我们认为每个通道一个接一个地执行,如果 e 对一个通道中的有效负载进行任何更改,它也会影响另一个通道的有效负载。
@Bean
public IntegrationFlow bean1() {
return IntegrationFlows
.from("Channel1")
.handle(MyMessage.class, (payload, header) -> obj1.method1(payload))
.channel(MessageChannels.publishSubscribe("subscribableChannel").get())
.get();
}
@Bean
public IntegrationFlow bean21() {
return IntegrationFlows
.from("subscribableChannel")
.handle(MyMessage.class, (payload, header) -> obj2.method2(payload,header))
.channel("nullChannel")
.get();
}
@Bean
public IntegrationFlow bean22() {
return IntegrationFlows
.from("subscribableChannel")
.handle(MyMessage.class, (payload, header) -> obj3.method3(payload))
.channel("nullChannel")
.get();
}
在上面的示例中,如果我对 bean21 中的有效负载进行更改,它会影响传递给 bean 22 的输入有效负载。
我的要求是将相同的有效负载传递给 bean21 和 bean22 并并行执行它们?你能告诉我如何做到这一点吗?