fix: use fewer redis connections

This commit is contained in:
Sebastian Rindom
2020-09-01 11:32:12 +02:00
parent 20c06e11cc
commit b5ee323bf6
2 changed files with 12 additions and 7 deletions

View File

@@ -1,4 +1,6 @@
import { createContainer, asValue } from "awilix"
import Redis from "ioredis"
import expressLoader from "./express"
import mongooseLoader from "./mongoose"
import apiLoader from "./api"
@@ -9,6 +11,7 @@ import passportLoader from "./passport"
import pluginsLoader from "./plugins"
import defaultsLoader from "./defaults"
import Logger from "./logger"
import config from "../config"
export default async ({ directory: rootDirectory, expressApp }) => {
const container = createContainer()
@@ -28,7 +31,13 @@ export default async ({ directory: rootDirectory, expressApp }) => {
return this
}.bind(container)
// Economical way of dealing with redis clients
const client = new Redis(config.redisURI)
const subscriber = new Redis(config.redisURI)
container.register({
redisClient: client,
redisSubscriber: subscriber,
logger: asValue(Logger),
})

View File

@@ -7,7 +7,7 @@ import config from "../config"
* @interface
*/
class EventBusService {
constructor({ logger }) {
constructor({ logger, redisClient, redisSubscriber }) {
/** @private {logger} */
this.logger_ = logger
@@ -20,17 +20,13 @@ class EventBusService {
/** @private {BullQueue} used for cron jobs */
this.cronQueue_ = new Bull(`cron-jobs:queue`, config.redisURI)
// Economical way of dealing with redis clients
const client = new Redis(config.redisURI)
const subscriber = new Redis(config.redisURI)
const opts = {
createClient: type => {
switch (type) {
case "client":
return client
return redisClient
case "subscriber":
return subscriber
return redisSubscriber
default:
return new Redis(config.redisURI)
}