Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ioredis Unhandled error event: Error: connect ETIMEDOUT

Has anyone encountered below error while connecting to standalone redis server using node js ioredis package?

Below is the error stack trace:

2018-08-16T10:52:18.351869060Z [ioredis] Unhandled error event: Error: connect ETIMEDOUT
2018-08-16T10:52:07.449457296Z at Timer.listOnTimeout (timers.js:207:5)
2018-08-16T10:52:07.449448499Z at tryOnTimeout (timers.js:237:5)
2018-08-16T10:52:07.449439722Z at ontimeout (timers.js:365:14)
2018-08-16T10:52:07.449430834Z at Socket._onTimeout (net.js:339:8)
2018-08-16T10:52:07.449421915Z at Socket.emit (events.js:185:7)
2018-08-16T10:52:07.449413002Z at emitNone (events.js:86:13)
2018-08-16T10:52:07.449403458Z at Socket.g (events.js:291:16)

This is occurring for instantiating only Standalone Redis object in node js. Below is the code I am using,

var publisher = new redis(redisPort, redisHost);

any solution would be highly appreciated.

like image 530
Ankur Soni Avatar asked Aug 16 '18 11:08

Ankur Soni


People also ask

What is connect Etimedout?

Answered by Aashna Saito. Error: connect etimedout is a Temporary issue when the Salesforce API is timed out. ETIMEDOUT comes from the Node. js engine and the error implies ETIMEDOUT (Operation timed out): A connect or send request failed because the connected party did not properly respond after a period of time.

What is Ioredis?

Ioredis describes itself as a “robust, full-featured Redis client that is used in the world's biggest online commerce company Alibaba and many other awesome companies”.


2 Answers

You can probably try increasing the timeout limit since ioredis has a default timeout value.

Normally we would have it set as,

new Redis({
  connectTimeout: 10000
})

In your case, since you have,

var publisher = new redis(redisPort, redisHost);

You will have to edit your code to pass the connectTimeout parameter to be passed accordingly.

Hope this helps.

like image 165
David R Avatar answered Sep 19 '22 11:09

David R


It's a bit late but can be helpful in the future for somebody else.

const redis = new Redis({
   port: <your_redis_port>,
   host: <your_redis_hostname>,
   connectTimeout: 10000
});
like image 20
Sahil Verma Avatar answered Sep 18 '22 11:09

Sahil Verma