spring 集成 dsl 缓冲区
spring integration dsl buffer
我有一个要求,我需要 hold/buffer 在频道上接收到的消息并根据消息的数量保留在数据库中,或者超时意味着 1 分钟内没有收到消息。
spring integration
有没有办法实现这个
IntegrationFlows
.from(Jms.messageDrivenChannelAdapter(connectionFactory)
.destination(sourceQueue))
.transform(someTransform, "transform")
.handle(someService, "save")
.get();
有一个 .aggregate()
运算符基于 Aggregator
EI 模式实现。
您可以使用 JdbcMessageStore
配置来缓冲消息并将它们存储到数据库中。
您可以通过 ReleaseStrategy
(根据到达的每条消息)将它们放在那里直到出现某种情况,或者由于 group timeout
.
而释放它们
如果您之后不想将它们全部作为单个聚合消息,您可以考虑使用 SimpleMessageGroupProcessor
它只生成 Collection<Message<?>>
并迭代它们以发送到输出一个一个。
在参考手册中查看有关聚合器的更多信息:https://docs.spring.io/spring-integration/reference/html/messaging-routing-chapter.html#aggregator
我有一个要求,我需要 hold/buffer 在频道上接收到的消息并根据消息的数量保留在数据库中,或者超时意味着 1 分钟内没有收到消息。 spring integration
有没有办法实现这个IntegrationFlows
.from(Jms.messageDrivenChannelAdapter(connectionFactory)
.destination(sourceQueue))
.transform(someTransform, "transform")
.handle(someService, "save")
.get();
有一个 .aggregate()
运算符基于 Aggregator
EI 模式实现。
您可以使用 JdbcMessageStore
配置来缓冲消息并将它们存储到数据库中。
您可以通过 ReleaseStrategy
(根据到达的每条消息)将它们放在那里直到出现某种情况,或者由于 group timeout
.
如果您之后不想将它们全部作为单个聚合消息,您可以考虑使用 SimpleMessageGroupProcessor
它只生成 Collection<Message<?>>
并迭代它们以发送到输出一个一个。
在参考手册中查看有关聚合器的更多信息:https://docs.spring.io/spring-integration/reference/html/messaging-routing-chapter.html#aggregator