我有一个简单的用例,我使用了Aggregator和MessageCountReleaseStrategy。在业务结束时,有一些消息 隔夜存储在邮件存储中。在剩下的消息到达后的第二天,该组被释放。
现在我想添加一些功能来查看在一天结束时存储(未发布)的消息,并提供一个选项来释放消息(如果用户想要的话)。
需要了解如何查看存储的消息。 为了简化这个用例,我只考虑了一个消息组。
<int:aggregator input-channel="orderItem" output-channel="orders"
ref="orderAggregator" method="createOrders"
expire-groups-upon-completion="true" release-strategy="messageCountReleaseStrategy"
message-store="messageStore" discard-channel="aggregatorDiscard" />
<bean id="messageCountReleaseStrategy" class="org.springframework.integration.aggregator.MessageCountReleaseStrategy">
<constructor-arg index="0" value="10"/>
</bean>
答案 0 :(得分:1)
您可以致电MessageGroupStore.getGroupMetadata(key)
,其中key
是correlationKey
。
您可以致电MessageGroupStore.expireMessageGroups(0)
以使所有部分群体到期。
如果send-partial-result-on-expiry
为真,则部分组将转到正常输出通道(如果为false)到丢弃通道。