我正在使用Node.js,Express,Redis和Socket.io。当Redis关闭时,Node.js将终止。
如何防止这种情况发生,可能在某个地方进行代码重新连接或其他操作?
输出:
info - socket.io started
Express server listening on port 3000
错误:
events.js:72
throw er; // Unhandled 'error' event
^ Error: Redis connection to 127.0.0.1:6380 failed - connect ECONNREFUSED
at RedisClient.on_error (...../node_modules/redis/index.js:151:24)
at Socket.<anonymous> (...../node_modules/redis/index.js:86:14)
at Socket.EventEmitter.emit (events.js:95:17)
at net.js:426:14
at process._tickCallback (node.js:415:13)
最佳答案
似乎您的Redis客户端实例没有错误处理程序。您能否提供一些代码摘录?可能我们可以通过这种方式更好地帮助您。只是一条错误消息少了一点。
如果我不得不猜测,那么我会说您没有错误处理程序...
看到这里:https://github.com/mranney/node_redis#usage
您是否有on error回调?
例子:
var redis = require("redis"),
client = redis.createClient();
// This is required so your error doesn't bubble
// upwards and kills your instance
client.on("error", function (err) {
console.log("Error " + err);
});
node_redis客户端会自动重新连接,因此尽管您可以配置max_attempts和其他选项,但您无需进行处理。看到这里:https://github.com/mranney/node_redis#rediscreateclientport-host-options
我希望我能提供一些有用的信息