RabbitMQ没有ack用法

时间:2016-07-19 07:42:46

标签: c# node.js rabbitmq

我正在将RMQ集成到我的项目中,以便实现工作队列。

我理解如果模块成功,它会调用ack方法,因此RMQ会知道它。

失败怎么办?

我读到只有当连接或频道关闭时,RMQ知道我们已经失败并重新将消息推送到队列。

但是,每当我遇到内部错误时,我都希望让RMQ重新推送消息,无论我是否崩溃(例如,无法插入数据库,我优雅地处理它而不会崩溃但是我想要整个工作重新尝试。)

我是否必须再次手动关闭并打开频道才能触发?

1 个答案:

答案 0 :(得分:1)

您可以使用否定ACK或拒绝。信息here

  

AMQP规范定义了允许的basic.reject方法   客户拒绝个人,传递信息,指导   经纪人要么丢弃它们,要么将它们重新排队。