在通道中保留消息,直到达到限制

时间:2014-01-25 23:33:24

标签: spring spring-integration

有没有办法以这样的方式设置弹簧集成通道,让它说只有在累积了50条传入消息后才将消息发送到输出通道。从轮询的角度来看,我希望轮询过程基于消息的数量而不是固定的时间间隔。以某种方式轮询上一个频道可能多次,但只有在它足够处理时接受消息

1 个答案:

答案 0 :(得分:3)

<aggregator/>使用release-strategy-expression="size == 50"correlation-strategy-expression="'foo'"(以及expire-groups-on-completion="true)。 expire-groups设置允许形成下一个组('foo')。

使用简单的<splitter />跟踪聚合器(没有表达式,只有输入/输出通道)。

聚合器将累积消息直到50到达,然后将它们作为集合释放,分割器将把集合拆分回单个消息。

如果要根据大小或已用时间进行发布(如果经过x秒,则释放短组),然后配置MessageGroupStoreReaper