我当前的设置(部分)是这样的:
<channel id="chainInboundChannel">
<queue message-store="mongoDbMessageStore"/>
</channel>
<chain id="myChain" input-channel="chainInboundChannel">
<service-activator ref="service1" ... />
<service-activator ref="service2" ... />
<service-activator ref="service3" ... />
<service-activator ref="service4" ... />
</chain>
大概我的消息现在被保留了。对于消息在队列中的时间,这似乎是正确的。但是当链接收到消息时,它会从消息存储中删除。因此,如果应用程序在消息被“service3”处理时关闭,消息就会丢失。
如何在链内处理消息时保持消息的持久性?
可选: 如果任何服务在某些特定情况下返回 null 怎么办?在这种情况下,消息应该被删除,因为它已经到了生命周期的尽头。