手动释放聚合器消息

时间:2016-09-08 19:42:04

标签: spring-integration

我有一个简单的用例,我使用了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> 

1 个答案:

答案 0 :(得分:1)

您可以致电MessageGroupStore.getGroupMetadata(key),其中keycorrelationKey

您可以致电MessageGroupStore.expireMessageGroups(0)以使所有部分群体到期。

如果send-partial-result-on-expiry为真,则部分组将转到正常输出通道(如果为false)到丢弃通道。