我正在编写一个程序,通过heroku上的amqp使用rabbitmq。
我的程序部分有这段代码:
console.log( 'APP START' );
//Connect to db and start
global.controllers.db.opendb(dbsettings, function(error,db){
if (!error){
global.db = db;
console.log( 'DB: connection to database established.' );
var con = amqp.createConnection( { url: global.queue.producers.host } );
con.on( 'ready', function() {
console.log( 'mq: producers connection ready.' );
});
}
});
正如我从文档中所理解的那样,成功连接到队列服务后,我应该只收到一条消息。
为什么我的输出有很多行包含 mq:producer connection ready。,如this那么,有什么特别的原因吗?
答案 0 :(得分:0)
当连接丢失或代码中发生错误时,amqp-node库会自动重新连接。我上面的代码看不出有任何问题,但是如果你的兔子相关代码(也在其他地方,例如连接和订阅队列)中抛出任何异常,amqp-node将尝试重新建立你的连接 - 并保持获得相同的异常并继续重试。