我有一个弹簧集成流程,可以按特定顺序调用某些组件。在最后阶段,使用task-executor
上的publish-subscribe-channel
并行调用3个组件。
<int:publish-subscribe-channel id="pubSubChannel"
task-executor="executor" />
<int:service-activator id="configure1"
input-channel="pubSubChannel">
<bean class="..." />
</int:service-activator>
<int:service-activator id="configure2"
input-channel="pubSubChannel">
<bean class="..." />
</int:service-activator>
<int:service-activator id="configure3"
input-channel="pubSubChannel">
<bean class="..." />
</int:service-activator>
我想知道所有这些组件何时完成了他们的工作,以便在正在处理的项目上标记某种成功完成的状态。
什么样的弹簧集成组件或模式可以帮助我实现这一目标?
我想跟踪所有3个组件是否完成而没有错误,我还要等到所有3个组件都完成。
几乎就像这个流程之后的一个频道接收所有3条消息,并且能够跟踪哪个消息来自哪个激活器/频道,以便知道何时收到所有3条消息并且工作已经完成。
答案 0 :(得分:0)
PublishSubscribeChannel
有applySequence
个选项,可以打开true
。
由此PublishSubscribeChannel
向每个订阅者发送带有SecuneceDetails
标题的邮件。
<aggregator>
(作为默认值)可以查询这些标题以形成message group
,并在所有序列进入<aggregator>
之后生成结果。
您可以在参考手册中找到有关此事的更多信息。