Java 聚合后缺少最后一个组
我有一个问题,聚合后丢失了一些消息。我需要将消息聚合到具有相同元素数的组中。对于我当前的问题,我在Java 聚合后缺少最后一个组,java,spring,spring-integration,spring-integration-dsl,Java,Spring,Spring Integration,Spring Integration Dsl,我有一个问题,聚合后丢失了一些消息。我需要将消息聚合到具有相同元素数的组中。对于我当前的问题,我在messageChannel中有118个元素。这些消息成功地组合成11组,每组10个元素。但是最后8个已经丢失了 IntegrationFlows .from(messageChannel) .split(s -> s .applySequence(false).get().getT
messageChannel
中有118个元素。这些消息成功地组合成11组,每组10个元素。但是最后8个已经丢失了
IntegrationFlows
.from(messageChannel)
.split(s -> s
.applySequence(false).get().getT2().setDelimiters("[\r\n]"))
.aggregate(s -> s
.correlationExpression("payload")
.releaseExpression("size() >= 10")
.expireGroupsUponCompletion(true)
)
.handle(h ->
System.out.println(h))
.get();
我希望在新的组中收到8条丢失的消息也许
expireGroupsUponTimeout
可以在这里提供帮助:
IntegrationFlows
.from(messageChannel)
.split(s -> s
.applySequence(false).get().getT2().setDelimiters("[\r\n]"))
.aggregate(s -> s
.correlationExpression("payload")
.releaseExpression("size() >= 10")
.expireGroupsUponCompletion(true)
.expireGroupsUponTimeout( 500 )
)
.handle(h ->
System.out.println(h))
.get();
没错。
groupTimeout
正是针对这个用例引入的: