消费者处理超时?

时间:2019-03-11 22:14:00

标签: solace

这是我们的场景:

我们正在将消息发布到某个主题,并有一个队列订阅了该主题。我们有几个node.js使用者连接到该队列,以通过solclient程序包处理传入消息。

我们要做的是处理传入的消息,并在成功处理消息后确认消息,以便将其从队列中删除。我们面临的挑战是如何处理错误情况。我们试图弄清楚如何向代理标记该消息无法处理?可以预期的是,经纪人然后将尝试再次发送给消费者,一旦达到最大重新交付量,它将移至DMQ。

1 个答案:

答案 0 :(得分:0)

我不认为Solace中有一种让消费者“ NACK”收到的消息来表示处理错误的方法。我相信您的选择是从队列中取消绑定(即disconnect() Flow对象或Node.js API中的MessageConsumer),这将使所有未确认的消息重新回到队列中并可供重新发送,然后重新绑定到队列。

或者,如果您在接收消息的回调方法中进行处理,则可以在其中引发异常,并且(?)应该可以完成相同的操作。但可能不太优雅。

https://docs.solace.com/Solace-PubSub-Messaging-APIs/Developer-Guide/Creating-Flows.htm

https://docs.solace.com/API-Developer-Online-Ref-Documentation/js/solace.MessageConsumer.html#disconnect