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
正是针对这个用例引入的: