Redis SMQ паб суб-соединение отключено без каких-либо указаний? - PullRequest
0 голосов
/ 20 января 2020

Я работаю над почтовой службой, которая использует Redis-smq. Сам пакет использует node-redis, который является самым популярным пакетом redis для nodejs.

. Итак, на моем сервере node js api есть 1 издатель и 2 подписчика и 1 производитель, работающий отдельно как скрипты узла.

Текущий поток - -

  1. Издатель api-сервера публикует сообщение в очереди redis (prep-queue).
  2. Подписчик сценария узла принимает сообщение и затем публикует sh новое сообщение в другой очереди на повторную передачу (очередь отправки).
  3. Другой сценарий узла принимает сообщение и отправляет электронную почту.

Теперь все работает нормально, но через час или 2, производитель в узле api-сервера как бы отключается без какой-либо ошибки. Поэтому, даже если он показывает успех при создании сообщений, у подписчика нет ответа.

Теперь мне нужно перезагрузить сервер API, чтобы снова начать получать сообщения и в течение следующих 1-2 часов. Производитель и подписчик, написанные в скриптах узла, работают нормально без перезапуска, это просто производитель на сервере API узла. Сервер API также использует socket.io для API в реальном времени для основного приложения angular. И скрипт узла, и сервер API узла используют одну и ту же конфигурацию Redis (ниже).

module.exports = {
namespace: 'xyz',
redis: {
    driver: 'redis',
    options: {
        host: process.env.REDIS_HOST || '127.0.0.1',
        port: process.env.REDIS_PORT || 6379,
        socket_keepalive : true,        
        socket_initdelay: 5*1000,
        retry_strategy: function (options) {
            return 12000;
        },
    },
},
monitor: {
    enabled: true,
    host: '127.0.0.1',
    port: 3010,
},

};

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...