ОШИБКА: [ioredis] Событие необработанной ошибки: Ошибка: подключить ETIMEDOUT - PullRequest
0 голосов
/ 23 мая 2019

Я сталкиваюсь с этой проблемой, истекает время ожидания соединения в моем приложении узла.

Я пробовал этот код,

new Redis({
  connectTimeout: 10000
})

Но это было бесполезно, это не помогло мне с кодом

[ioredis] Unhandled error event: Error: connect ETIMEDOUT
    at Socket.<anonymous> (/code/node_modules/ioredis/lib/redis.js:291:21)
    at Object.onceWrapper (events.js:313:30)
    at emitNone (events.js:106:13)
    at Socket.emit (events.js:208:7)
    at Socket._onTimeout (net.js:407:8)
    at ontimeout (timers.js:475:11)
    at tryOnTimeout (timers.js:310:5)
    at Timer.listOnTimeout (timers.js:270:5)

1 Ответ

0 голосов
/ 23 мая 2019

Когда вы говорите «контейнер», я предполагаю, что вы имеете в виду docker containers.Если вы используете Docker Network, я считаю, что вы всегда можете изменить хост на имя вашего Docker контейнера в сети.Если вы используете docker-compose, вот идея, как это можно сделать:

version: '3'
services:
  app:
   image: app_image
   depends_on:
    - redis
   networks:
    - app_network
  redis:
   image: redis
   networks:
    - app_network
networks:
  app_network: {}

Итак, в вашем приложении вы бы сделали

redis = new Redis({
  host: 'redis://redis'
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...