同じメッセージ(ペイロード)を2つの異なるチャネルで処理する必要があるという要件があります。 PubliSHSubscribe Channelを使用すると、両方のチャンネルにメッセージのコピーを作成することで、私たちはそれに対処することができます。しかし、私たちは、各チャンネルが次々に実行されていると考えていました。そして、あるチャンネルのペイロードに何らかの変更を加えると、他のチャンネルのペイロードにも影響します。上記の例でSpring統合DSL両方のチャネルに同じメッセージ
@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();
}
iはbean21にペイロードを変更する場合、Beanに渡され、その行う入力ペイロードは22
私の要件はbean21とbean22及び実行するために同じペイロードを通過することです彼らはパラレルに?あなたはそれを達成する方法をアドバイスできますか?