ioredis Необработанное событие ошибки: Ошибка: подключите ETIMEDOUT

Кто-нибудь сталкивался с ошибкой ниже при подключении к автономному серверу Redis с использованием пакета node js ioredis?

Ниже приведена трассировка стека ошибок:

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)

Это происходит для создания экземпляра только автономного объекта Redis в узле js. Ниже приведен код, который я использую,

var publisher = new redis(redisPort, redisHost);

любое решение будет высоко оценено.


person Ankur Soni    schedule 16.08.2018    source источник


Ответы (2)


Вероятно, вы можете попробовать увеличить лимит тайм-аута, поскольку ioredis имеет значение тайм-аута по умолчанию.

Обычно мы устанавливаем его как

new Redis({
  connectTimeout: 10000
})

В вашем случае, поскольку у вас есть

var publisher = new redis(redisPort, redisHost);

Вам нужно будет отредактировать свой код, чтобы передать соответствующий параметр connectTimeout.

Надеюсь это поможет.

person David R    schedule 16.08.2018
comment
можете ли вы привести пример того, как передать этот параметр в существующей строке кода? - person Ankur Soni; 16.08.2018
comment
Конечно, не могли бы вы опубликовать соответствующий код, в котором вы устанавливаете значения для переменных redisPort и redisHost соответственно? - person David R; 16.08.2018
comment
Спасибо за это, закончились часы битья головой о стену! - person Olivier Krull; 20.07.2019
comment
@ Оливер Крулл, Рад, что помог! :-) - person David R; 20.07.2019

Немного поздно, но может быть полезно в будущем для кого-то другого.

const redis = new Redis({
   port: <your_redis_port>,
   host: <your_redis_hostname>,
   connectTimeout: 10000
});
person Sahil Verma    schedule 26.02.2019