I am using Node.js, Express, Redis and Socket.io. When Redis is down, Node.js will terminate.
How can I prevent this, probably somewhere to code reconnection or something?
Output:
info - socket.io started
Express server listening on port 3000
Error:
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)
It seems like you don't have an error handler for your redis client instance. Can you provide some excerpt from your code? Probably we can help you better that way. Just an error message is a bit less.
If I had to guess then I'd say you have no error handler...
See here: https://github.com/mranney/node_redis#usage
Do you have a on error callback?
Example:
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);
});
The node_redis client automatically reconnects so you don't need to handle that although you can configure a max_attempts and other options. See here: https://github.com/mranney/node_redis#rediscreateclientport-host-options
I hope I could provide some useful information
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With