Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring integration 跟踪异步服务激活器的进度_Spring Integration - Fatal编程技术网

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

Spring integration 跟踪异步服务激活器的进度,spring-integration,Spring Integration,我有一个spring集成流,它以特定的顺序调用特定的组件。在最后一个阶段,通过使用发布-订阅通道上的任务执行器并行调用3个组件 <int:publish-subscribe-channel id="pubSubChannel" task-executor="executor" /> <int:service-activator id="configure1" input-channel="pubSubChannel"> <bean clas

我有一个spring集成流,它以特定的顺序调用特定的组件。在最后一个阶段,通过使用
发布-订阅通道上的
任务执行器
并行调用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>

我想知道所有这些组件何时都完成了工作,以在正在处理的项目上标记某种成功完成状态

什么spring集成组件或模式可以帮助我实现这一点

我想跟踪所有3个组件是否都已完成且没有错误,并且我想等待所有3个组件完成


几乎就像此流程之后的一个通道,它接收所有3条消息,并能够跟踪哪个消息来自哪个激活器/通道,以了解何时所有3条消息都已接收且工作已完成。
PublishSubscribeChannel
具有
applySequence
选项,可以将其打开为

然后,
PublishSubscribeChannel
向每个订阅者发送带有
secunecedtails
标题的消息

(默认情况下)可以参考这些标题,形成一个
消息组
,并在所有序列到达
后生成结果


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

PublishSubscribeChannel
具有
applySequence
选项,可以将其打开为
true

然后,
PublishSubscribeChannel
向每个订阅者发送带有
secunecedtails
标题的消息

(默认情况下)可以参考这些标题,形成一个
消息组
,并在所有序列到达
后生成结果


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

Sine
apply sequence
创建新消息并使用新的
相关id
,是否有方法指定或覆盖发布订户频道使用的相关id。我已尝试在此频道之前设置相关id,但由于生成了一条新消息,它也会创建一个新的相关id。不,您不能。我找不到(目前)的论据来解释这个问题没有定制化的原因。但是,您是否介意分享一个问题,为什么基于传入消息
id
的默认算法对您来说是不够的?让我理解一下-因此,如果我有两条消息进入发布-订阅通道,听起来好像会生成两个唯一的相关id,这样我的聚合器应该能够识别这两个组(可能来自6条消息)然后在每个组的序列号与序列大小匹配时释放它们。如果是这种情况,那么我认为我可以。是的。这是正确的。发布-订阅通道使用传入消息的I'd作为传出消息的correlationKey。聚合器将知道为此构建哪个组。最后,您将有一个关联赌注在一条请求消息和该消息的回复组之间。谢谢,这很有意义。对于此
release strategy expression=“[0]”而言,这似乎是一个有效的发布策略表达式。headers.sequenceNumber=[0]。headers.sequenceSize“
。我从参考手册中获得了此消息,但我不确定为什么[0](集合中的第一条消息)其次,它实际上不起作用。聚合器没有使用此表达式发布消息。ine
apply sequence
创建新消息并使用新的
相关id
,是否有方法指定或覆盖发布订户频道使用的相关id。在此之前,我已尝试设置相关id但由于生成了一条新消息,它也会创建一个新的关联id。不,您不能。我还找不到解释原因的参数在此问题上没有自定义。但是您是否介意分享一个问题,为什么基于传入消息
id
的默认算法对您来说不够?让我理解一下-因此,如果我有两条消息进入发布-订阅通道,听起来两个唯一的相关id将生成,以便我的聚合器能够识别这两个组(可能来自6条消息)然后在每个组的序列号与序列大小匹配时释放它们。如果是这种情况,那么我认为我可以。是的。这是正确的。发布-订阅通道使用传入消息的I'd作为传出消息的correlationKey。聚合器将知道为此构建哪个组。最后,您将有一个关联赌注在一条请求消息和该消息的回复组之间。谢谢,这很有意义。对于此
release strategy expression=“[0]”而言,这似乎是一个有效的发布策略表达式。headers.sequenceNumber=[0]。headers.sequenceSize“
。我从参考手册中获得了此消息,但我不确定为什么[0](集合中的第一条消息)其次,它实际上不起作用。聚合器没有用这个表达式发布消息