You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-08-06 02:15:48 +03:00
Emit an error when connection permanently goes down
Closes #724 and #615
This commit is contained in:
@@ -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
|
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.
|
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"
|
### "error"
|
||||||
|
|
||||||
`client` will emit `error` when encountering an error connecting to the Redis server.
|
`client` will emit `error` when encountering an error connecting to the Redis server.
|
||||||
|
7
index.js
7
index.js
@@ -463,9 +463,7 @@ RedisClient.prototype.connection_gone = function (why) {
|
|||||||
|
|
||||||
if (this.max_attempts && this.attempts >= this.max_attempts) {
|
if (this.max_attempts && this.attempts >= this.max_attempts) {
|
||||||
this.retry_timer = null;
|
this.retry_timer = null;
|
||||||
// TODO - some people need a "Redis is Broken mode" for future commands that errors immediately, and others
|
this.emit('error', new Error("Redis connection in broken state: maximum connection attempts exceeded."));
|
||||||
// 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.");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -481,8 +479,7 @@ RedisClient.prototype.connection_gone = function (why) {
|
|||||||
|
|
||||||
if (self.connect_timeout && self.retry_totaltime >= self.connect_timeout) {
|
if (self.connect_timeout && self.retry_totaltime >= self.connect_timeout) {
|
||||||
self.retry_timer = null;
|
self.retry_timer = null;
|
||||||
// TODO - engage Redis is Broken mode for future commands, or whatever
|
this.emit('error', new Error("Redis connection in broken state: connection timeout exceeded."));
|
||||||
debug("Couldn't get Redis connection after " + self.retry_totaltime + "ms.");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user