这是我们的场景:
我们正在将消息发布到某个主题,并有一个队列订阅了该主题。我们有几个node.js使用者连接到该队列,以通过solclient程序包处理传入消息。
我们要做的是处理传入的消息,并在成功处理消息后确认消息,以便将其从队列中删除。我们面临的挑战是如何处理错误情况。我们试图弄清楚如何向代理标记该消息无法处理?可以预期的是,经纪人然后将尝试再次发送给消费者,一旦达到最大重新交付量,它将移至DMQ。
答案 0 :(得分:0)
我不认为Solace中有一种让消费者“ NACK”收到的消息来表示处理错误的方法。我相信您的选择是从队列中取消绑定(即disconnect()
Flow对象或Node.js API中的MessageConsumer
),这将使所有未确认的消息重新回到队列中并可供重新发送,然后重新绑定到队列。
或者,如果您在接收消息的回调方法中进行处理,则可以在其中引发异常,并且(?)应该可以完成相同的操作。但可能不太优雅。
https://docs.solace.com/Solace-PubSub-Messaging-APIs/Developer-Guide/Creating-Flows.htm