为什么在node-amqp出现问题时“关闭”事件?

时间:2014-01-10 11:15:20

标签: node.js rabbitmq node-amqp

(我正在使用node-amqp和rabbitmq服务器。)

我想猜一下,如果出现问题,为什么我会有一个接近的事件。例如,如果我尝试打开与队列的连接(参数错误),我会收到错误事件。这是完美的确定。

但是,在任何错误之后我也会收到一个紧密的连接(在这种情况下,可能是因为关闭了队列的失败套接字)。然后,自动重新连接,我收到(初始)准备好的事件。

问题:

connection.on('ready', function() {
 do_a_lot_of_things

}).on(error, function(error){
 solve_the_problem
});

如果出现问题,我收到错误,但接着是“就绪”事件,它将重新执行do_a_lot_of_things。我的做法错了吗?

最好的问候

1 个答案:

答案 0 :(得分:2)

您可以使用connection.once('ready', function () { … })(请参阅the documentation),它将仅在第一个事件上执行处理程序。