Java 任务执行器的固定延迟
我的项目有一个-spring集成固定延迟轮询器(5分钟),它获取一堆记录-将其发送到拆分器,拆分器将记录拆分,并将它们发送到输出通道上池大小为2的taskexector路由器通道,并将每条记录发送给service activator进行进一步处理,并在聚合器上接收。Flow工作正常 但是,固定延迟是将前一个执行时间视为将记录交给任务执行者的时间,而不是在聚合器通道完成并接收所有记录处理时 如何让轮询器在所有记录处理完成后等待5分钟,而不是在拆分器通道上等待5分钟 配置: 使用SpringIntegration2.2.0.RELEASE和Spring3.1.1.RELEASE版本Java 任务执行器的固定延迟,java,multithreading,spring-integration,router,splitter,Java,Multithreading,Spring Integration,Router,Splitter,我的项目有一个-spring集成固定延迟轮询器(5分钟),它获取一堆记录-将其发送到拆分器,拆分器将记录拆分,并将它们发送到输出通道上池大小为2的taskexector路由器通道,并将每条记录发送给service activator进行进一步处理,并在聚合器上接收。Flow工作正常 但是,固定延迟是将前一个执行时间视为将记录交给任务执行者的时间,而不是在聚合器通道完成并接收所有记录处理时 如何让轮询器在所有记录处理完成后等待5分钟,而不是在拆分器通道上等待5分钟 配置: 使用SpringInte
<integration:channel id="splitterChannel"/>
<integration:channel id="serviceRequestChannel"/>
<integration:channel id="aggregatorChannel"/>
<task:executor id="taskExecutor" pool-size="2"/>
<integration:channel id="routerChannel" >
<integration:dispatcher task-executor="taskExecutor"/>
</integration:channel>
<integration:inbound-channel-adapter
id="inboundAdapter"
method="retrieveReadyRecords"
channel="splitterChannel"
ref="inboundChannelAdapter" auto-startup="true">
<integration:poller
trigger="batchtrigger"/>
</integration:inbound-channel-adapter>
<integration:splitter
input-channel="splitterChannel"
expression="payload"
output-channel="routerChannel"/>
<integration:recipient-list-router input-channel="routerChannel">
<integration:recipient channel="aggregatorChannel" selector-expression="xxx"/>
<integration:recipient channel="serviceRequestChannel" selector-expression="zzzz"/>
</integration:recipient-list-router>
---另外,对于发送到aggreter的以下服务请求的进一步配置,您必须挂起轮询器线程,直到所有异步下游操作完成
一种方法是在
中使用阻塞队列,轮询器线程在此等待来自下游处理的信号继续。然后触发器将从该点开始。您必须挂起轮询器线程,直到所有异步下游操作完成
一种方法是在
中使用阻塞队列,轮询器线程在此等待来自下游处理的信号继续。然后触发器将从该点开始