From c004bbf7cd62345d140a869768e93486ed93e7b9 Mon Sep 17 00:00:00 2001 From: Anas Khan Date: Fri, 10 Nov 2023 14:11:57 +0530 Subject: [PATCH 1/2] redis with command timeout --- .vscode/settings.json | 3 +++ index.js | 2 ++ package.json | 3 ++- 3 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..8d9c9bc --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "editor.formatOnSave": false +} \ No newline at end of file diff --git a/index.js b/index.js index e544b57..e7cd6f2 100644 --- a/index.js +++ b/index.js @@ -1,5 +1,6 @@ const IoRedis = require('ioredis'); +const redisTimeout = require('ioredis-timeout'); function retryStrategy(times) { @@ -170,6 +171,7 @@ class Redis { } this.log(`Connecting in ${infoObj.mode} mode`, infoObj); + redisTimeout(client, 100); // common events client.on('connect', () => { diff --git a/package.json b/package.json index 5ce94ac..0bb978e 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,8 @@ }, "homepage": "https://github.com/akshendra/redis-wrapper#readme", "dependencies": { - "ioredis": "^3.2.2" + "ioredis": "^3.2.2", + "ioredis-timeout": "^1.5.0" }, "devDependencies": { "eslint": "^5.9.0", From 270a4b5c204d2d75ac3cba7c2e9249f3b76f4521 Mon Sep 17 00:00:00 2001 From: Anas Khan Date: Fri, 10 Nov 2023 14:19:07 +0530 Subject: [PATCH 2/2] configurable timeout --- index.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index e7cd6f2..dfb0aa1 100644 --- a/index.js +++ b/index.js @@ -33,10 +33,12 @@ class Redis { * @param {string} name - unique name to this service * @param {EventEmitter} emitter * @param {Object} config - configuration object of service + * @param {number} commandTimeout - config for command timeout in ms */ - constructor(name, emitter, config) { + constructor(name, emitter, config, commandTimeout) { this.name = name; this.emitter = emitter; + this.commandTimeout = commandTimeout; this.config = Object.assign({ host: 'localhost', port: 6379, @@ -171,7 +173,7 @@ class Redis { } this.log(`Connecting in ${infoObj.mode} mode`, infoObj); - redisTimeout(client, 100); + redisTimeout(client, this.commandTimeout); // common events client.on('connect', () => {