聚合后缺少最后一组
Missing last group after aggregation
我遇到聚合后丢失一些消息的问题。我需要将我的消息聚合到具有相同数量元素的组中。对于我当前的问题,我在 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();
我遇到聚合后丢失一些消息的问题。我需要将我的消息聚合到具有相同数量元素的组中。对于我当前的问题,我在 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();