跟踪异步服务激活器的进度

时间:2016-03-25 21:31:21

标签: spring-integration

我有一个弹簧集成流程,可以按特定顺序调用某些组件。在最后阶段,使用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条消息并且工作已经完成。

1 个答案:

答案 0 :(得分:0)

PublishSubscribeChannelapplySequence个选项,可以打开true

由此PublishSubscribeChannel向每个订阅者发送带有SecuneceDetails标题的邮件。

<aggregator>(作为默认值)可以查询这些标题以形成message group,并在所有序列进入<aggregator>之后生成结果。

您可以在参考手册中找到有关此事的更多信息。