gpt4 book ai didi

java - 如何使用spring的DefaultMessageListenerContainer进行手动提交?

转载 作者:行者123 更新时间:2023-11-30 05:04:30 26 4
gpt4 key购买 nike

我们有一个在队列上监听消息的应用程序,我知道 dmlc 提供了一个 sessionTransacted 属性,我认为该属性允许我们手动提交消息接收事件,但是我不确定如何在监听器中利用它。

看起来,只要抛出一个 RuntimeException,消息就会被放回到队列中,如果尚未设置 ErrorHandler 但我们想专门提交接收,则消息会进入循环。

例如

public class JMSMessageListener implements MessageListener {

@Override
public void onMessage(Message message) {
// do something with the message and then manually commit
}
}

最佳答案

有使用 ActiveMQ 的经验。启用 sessionTransacted 后,如果您的应用程序在 onMessage 中意外关闭,消息将在重新启动后再次处理。如果 session 没有被处理,它将丢失。

您无法使用 sessionTransacted 手动控制事务(除了抛出异常以回滚消息)。您可能想看看SessionAwareMessageListener ,虽然我从来没有尝试过。

关于java - 如何使用spring的DefaultMessageListenerContainer进行手动提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5586221/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com