Spring 集成 - 查看尚未添加的消息的发布策略



我有分组(假设为50(提取到系统的消息,需要通过AGGREGATION_ID分组到消息列表中,并进一步发送到流中。

我可以使用correlationStrategy与该id进行聚合,但我需要知道何时发布聚合消息。在ReleaseStrategy中,我只能查看已添加到聚合中的消息,但我需要知道在提取的50个具有相同AGGREGATION_ID的组中何时不再有消息,才能知道何时发送该组。我该怎么做?

ReleaseStrategy可以是任何对整个应用程序上下文具有完全访问权限的bean。如果您在聚合之前有存储这些消息的地方,那么您肯定可以从自定义的ReleaseStrategy实现中查看该位置。

另一方面,我建议查看聚合器的groupTimeout选项:https://docs.spring.io/spring-integration/docs/5.3.0.M4/reference/html/message-routing.html#agg-并分组到。因此,在正常行为下,您的组将根据预期的50大小进行收集,但当一段时间内没有新的消息时,一个组将与迄今为止存在的任何消息一起发布。您还可以将groupTimeout配置为SpEL表达式,这样也可以访问应用程序上下文。

最新更新