当amqp重新启动时,读取ECONNRESET
Read ECONNRESET comes up when amqp restarts
目前我创建了一个Sender
类客户端,它可以向amqp发送消息,也可以重新连接到amqp。当需要向amqp发送消息时,如果连接失败,Sender可以尝试三次重新连接到amqp。这是代码https://gist.github.com/richzw/e39237aa1fe31c15a587
然后我用以下代码测试它,
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)
我尝试在相同的场景中对其进行多次测试,上面的错误总是在第二次时出现。为什么?有人能帮我想办法吗?
实际上,异常ECONNRESET
可以在error
事件中捕获。
Sender.prototype.handleDisconnections_ = function() {
return this.con_.on('error', (function( that ) {
return function( err ) {
//if ( err.code === 'ECONNRESET' ) {
//return when.reject( err );
//}
return that;//.retryConnect_( that.attempts_, that.retryDelay_ , err );
};
})(this));
};
相关文章:
- 从桌面读取python文件时高亮显示代码
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 使用Dnamics CRM 2011中的JavaScript读取子网格的所有记录,而不考虑活动页面
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- TypeError:无法读取属性'推'未定义的JavaScript
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- NodeJS-readline暂停和恢复事件发射器(逐行读取)
- 未捕获的类型错误:无法读取属性'删除'的未定义
- AngularJS指令出错-无法读取属性'编译'的未定义
- 未捕获的类型错误:无法读取属性'name'即使它存在,也无法定义
- 如何在Javascript中读取unsigned int
- 如何读取表单中的输入数据
- 通过传递图像的URL通过javascript读取/处理图像-类似于PHP中的file_get_contents
- 得到"读取ECONNRESET”;尝试POST到'graphic.facebook.com'通
- 当amqp重新启动时,读取ECONNRESET
- 错误:使用mode.js的请求模块读取ECONNRESET
- node.js错误:读取ECONNRESET