聚合后缺少最后一组

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();