fix: use fewer redis connections
This commit is contained in:
@@ -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),
|
||||
})
|
||||
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user