MessageGroupStoreReaper究竟是什么

时间:2014-05-06 18:35:25

标签: spring-integration

所有Spring项目都有广泛而且非常有用的文档,弹簧集成项目的情况也是如此,但我希望能够收集大量信息的一个主题是消息组收集器。基本上,它似乎是一种可以在外部影响聚合器以释放某些消息的机制。不清楚的是它与发布政策的不同或相似之处。它是否实际上从聚合器中释放消息,然后由流中的后续组件处理它们,或者它只是清除聚合器类似丢弃聚合消息的类型。其次是控制释放哪些消息,以便释放属于特定组的消息而不释放其他消息。

1 个答案:

答案 0 :(得分:4)

在Spring Integration 4.0之前,聚合器是一个完全被动的组件。群组释放(或不释放)由新消息的到达触发 - 当查询释放策略以查看消息所属的组是否可以被释放。那么,我们如何丢弃(或释放)一个闲置的群体并且在一段时间内没有新消息到达?

收割机按计划运行,可以检测到“卡住”#34;分组并根据时间释放它们,而不会有新消息到达。

它还用于删除空组 - 可以配置聚合器以使空组仍然存在,以便可以丢弃迟到的消息而不是形成新组。可以按不同的计划收集空组以部分完成组。

收割机将满足所有符合配置标准的组;如果小组通过了标准,则该小组已过期;否则它不会,并将被认为是下一次收割机运行。收割者采取的行动(部分释放,丢弃等)取决于聚合器上的其他设置。

Spring Integration 4.0引入了新属性(group-timeoutgroup-timeout-expression),允许部分组在超时后自动释放,没有收割者(当一个新消息到达时,计时器被设防) )。在这种情况下,收割者仍可用于使空组过期(删除)。

我希望这能解释收割者的功能。