Как определить клиент Redis глобально?

У меня есть простой компонент, который привязан к контроллеру. Так что каждый HTTP-запрос вызывает testFunction():

//test.js
const redisHelper = require('../myRedis');

class TEST {

  testFunction() {
    ....
      redisHelper.getCache(cacheKey)
        .then((cacheData) => {
          ....
  }
}

module.exports = TEST;

Для этого компонента требуется модуль myRedis:

//myRedis.js
const redis = require('redis');

class myRedis {

  constructor () {
    ....
    this.redisClient = this.getRedisClient();
  }

  getRedisClient () {
    let redisClient;
    ....

    return redisClient;
  }

  getCache (key) {
    ....
  }

  quit () {
    this.redisClient.quit();
  }
}

module.exports = new myRedis();

Я не хочу создавать Redis-клиент для каждого HTTP-запроса, но оставляю его включенным / открытым. Так я могу объявить клиент Redis в app.js и использовать его в test.js? Затем при выходе из процесса я закрою соединение.

process.on('SIGTERM', () => {
  server.close(() => {
    redisClient.quit();
    process.exit();
  })
})

Проблема в клиенте redis, который вылетает при открытии / закрытии для каждого из тысяч HTTP-запросов

0 ответов

Другие вопросы по тегам