0
目前我創建一個Sender
類客戶端,它可以發送消息到amqp,也重新連接到amqp。當消息需要發送到amqp時,如果連接失敗,發件人可以嘗試重新連接到amqp三次。下面是代碼https://gist.github.com/richzw/e39237aa1fe31c15a587閱讀ECONNRESET啓動時,amqp重新啓動
然後我用下面的代碼進行測試,
var Sender = require('./sender.js');
var amqpAddress = 'amqp://localhost';
var sender = new Sender(amqpAddress, 2000, 3, sendMessageCallback);
function sendMessageCallback() {
console.error('Message can NOT be sent due to MessageBus error');
}
// send message every 5 seconds
var CronJob = require('cron').CronJob;
var send_message_job = new CronJob({
cronTime: '*/5 * * * * *',
onTick: function(){
sender.deliverMessage(key, msg);
},
start: true,
});
send_message_job.start();
然後我試圖阻止,並隨機啓動AMQP服務。我發現當我第一次重新啓動amqp服務時,發件人可以繼續正常發送消息。但是,當我嘗試停止第二次服務時,出現以下錯誤,程序崩潰。
Error: read ECONNRESET at errnoException (net.js:905:11) at TCP.onread (net.js:559:19)
我嘗試了幾次用相同的情況下進行測試,上面的錯誤總是在第二次出現。爲什麼?任何人都可以幫我弄清楚如何處理它?