my proejct has a -spring integration fixed delay poller (5 min.) which gets bunch of records - sends it to the splitter, which splits the records and sends them to taskexector router channel with pool size as 2 at the output channel and send each record for further processing at service activator and received at aggregator. Flow is working fine.
However the fixed delay is treating the previous execution time as upto where it is handing the records to task executor and not when all the records processing completed and received at aggregater channel.
How to make the poller wait for 5 minutes after all the records processing completed instead wait for 5 minutes from handing over at the splitter channel ?
Configuration:
using the spring integration 2.2.0.RELEASE and spring 3.1.1.RELEASE versions
<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>
--- also further configuration for below service requests sending to aggretor