New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

node-redis-retry-strategy

Package Overview
Dependencies
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

node-redis-retry-strategy

My custom node_redis retry_strategy function

  • 2.1.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1.2K
decreased by-7.35%
Maintainers
1
Weekly downloads
 
Created
Source

node-redis-retry-strategy

License: MIT Build Status codecov Dependencies install size

A custom implementation of the node_redis retry_strategy function.

Sometimes, if the Redis server is down, you need to have clients that don't give up and try to reconnect.
"node-redis-retry-strategy" is a function that returns the node_redis retry_strategy function. The strategy is: every wait_time try to connect for number_of_retry_attempts times (each time separated by delay_of_retry_attempts). By default, every 5 minutes, try 5 times to reconnect (every attempt is separated by 500 ms). It retries forever.

* 2.0 breaking change: by default do not allow to start the service without a redis connection; to have the previous behaviour set allow_to_start_without_connection:true

Install

# with npm
npm install node-redis-retry-strategy

# or with yarn
yarn add node-redis-retry-strategy

Usage

// redisClient.js file
var redis = require("redis");
var retryStrategy = require("node-redis-retry-strategy");

var client = redis.createClient({
    host: "127.0.0.1",
    port: 6379,
    retry_strategy: retryStrategy()
});

module.exports = client;
// index.js file
var redisClient = require("redisClient.js");

redisClient.on("connect", function () {
    console.log("connected!");
});
redisClient.on("end", function () {
    console.log("redis connection has closed");
});
redisClient.on("reconnecting", function (o) {
    console.log("redis client reconnecting", o.attempt, o.delay);
});

Options

It accepts options object as a parameter with 4 possible keys:

allow_to_start_without_connection type boolean

Default: false 2 possible scenarios:

  • false if there is no connection when the service starts, end reconnecting throwing an error and flush all commands
  • true allow to start the service without a redis connection
var redis = require("redis");
var retryStrategy = require("node-redis-retry-strategy");

var client = redis.createClient({
    host: "127.0.0.1",
    port: 6379,
    retry_strategy: retryStrategy({
        allow_to_start_without_connection: true
    })
});

module.exports = client;
number_of_retry_attempts type number ms

Default: 5
The number of attempts separated by the delay_of_retry_attempts. If set to 0, it ends reconnecting with the built in error.

var redis = require("redis");
var retryStrategy = require("node-redis-retry-strategy");

var client = redis.createClient({
    host: "127.0.0.1",
    port: 6379,
    retry_strategy: retryStrategy({
        number_of_retry_attempts: 7
    })
});

module.exports = client;
delay_of_retry_attempts type number ms

Default: 500
The delay between each retry attempts.

var redis = require("redis");
var retryStrategy = require("node-redis-retry-strategy");

var client = redis.createClient({
    host: "127.0.0.1",
    port: 6379,
    retry_strategy: retryStrategy({
        delay_of_retry_attempts: 1000
    })
});

module.exports = client;
wait_time type number ms

Default: 300000 (5 min)
How long stop retrying to connect.

var redis = require("redis");
var retryStrategy = require("node-redis-retry-strategy");

var client = redis.createClient({
    host: "127.0.0.1",
    port: 6379,
    retry_strategy: retryStrategy({
        wait_time: 600000
    })
});

module.exports = client;

License

MIT

Keywords

FAQs

Package last updated on 06 Apr 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc