Browse Source

Emit an error when connection permanently goes down

Closes #724 and #615
greenkeeper-update-all
Ruben Bridgewater 9 years ago
parent
commit
cd5cfb4a8e
  1. 5
      README.md
  2. 7
      index.js

5
README.md

@ -113,6 +113,11 @@ then replayed just before this event is emitted.
is set. If this options is set, `connect` will be emitted when the stream is connected, and then
you are free to try to send commands.
### "reconnecting"
`client` will emit `reconnecting` when trying to reconnect to the Redis server after losing the connection. Listeners
are passed an object containing `delay` (in ms) and `attempt` (the attempt #) attributes.
### "error"
`client` will emit `error` when encountering an error connecting to the Redis server.

7
index.js

@ -463,9 +463,7 @@ RedisClient.prototype.connection_gone = function (why) {
if (this.max_attempts && this.attempts >= this.max_attempts) {
this.retry_timer = null;
// TODO - some people need a "Redis is Broken mode" for future commands that errors immediately, and others
// want the program to exit. Right now, we just log, which doesn't really help in either case.
debug("Couldn't get Redis connection after " + this.max_attempts + " attempts.");
this.emit('error', new Error("Redis connection in broken state: maximum connection attempts exceeded."));
return;
}
@ -481,8 +479,7 @@ RedisClient.prototype.connection_gone = function (why) {
if (self.connect_timeout && self.retry_totaltime >= self.connect_timeout) {
self.retry_timer = null;
// TODO - engage Redis is Broken mode for future commands, or whatever
debug("Couldn't get Redis connection after " + self.retry_totaltime + "ms.");
this.emit('error', new Error("Redis connection in broken state: connection timeout exceeded."));
return;
}

Loading…
Cancel
Save