Merge pull request #10282 from danihodovic/add-redis-retry-strategy

Added Redis retry_strategy
This commit is contained in:
Mine Starks
2016-08-04 10:26:03 -07:00
committed by GitHub
2 changed files with 34 additions and 0 deletions
+22
View File
@@ -27,6 +27,28 @@ redis.print(err, value);
client = redis.createClient(num, str, options);
// Test the `retry_strategy` property
// ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
function retryStrategyNumber(options: redis.RetryStrategyOptions): number {
// Ensure that the properties of RetryStrategyOptions are resilient to breaking change.
// If the properties of the interface changes, the variables below will also need to be adapted.
var error: Error = options.error;
var total_retry_time: number = options.total_retry_time;
var times_connected: number = options.times_connected;
var attempt: number = options.attempt;
return 5000;
}
function retryStrategyError(options: redis.RetryStrategyOptions): Error {
return new Error('Foo');
}
client = redis.createClient({
retry_strategy: retryStrategyNumber
});
client = redis.createClient({
retry_strategy: retryStrategyError
});
// ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
bool = client.connected;
num = client.retry_delay;
num = client.retry_backoff;
+12
View File
@@ -34,6 +34,17 @@ declare module "redis" {
versions: number[];
}
export interface RetryStrategyOptions {
error: Error;
total_retry_time: number;
times_connected: number;
attempt: number;
}
export interface RetryStrategy {
(options: RetryStrategyOptions): number | Error;
}
export interface ClientOpts {
parser?: string;
return_buffers?: boolean;
@@ -50,6 +61,7 @@ declare module "redis" {
family?: string;
command_queue_high_water?: number;
command_queue_low_water?: number;
retry_strategy?: RetryStrategy;
}
export interface RedisClient extends NodeJS.EventEmitter {