Как определить клиент 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-запросов