fix: use fewer redis connections
This commit is contained in:
1 parent
20c06e11cc
commit
b5ee323bf6
2 files changed
+12
-7
No files matched your search
@@ -1,4 +1,6 @@
|
|||||||
import { createContainer, asValue } from "awilix"
|
import { createContainer, asValue } from "awilix"
|
||||||
|
import Redis from "ioredis"
|
||||||
|
|
||||||
import expressLoader from "./express"
|
import expressLoader from "./express"
|
||||||
import mongooseLoader from "./mongoose"
|
import mongooseLoader from "./mongoose"
|
||||||
import apiLoader from "./api"
|
import apiLoader from "./api"
|
||||||
@@ -9,6 +11,7 @@ import passportLoader from "./passport"
|
|||||||
import pluginsLoader from "./plugins"
|
import pluginsLoader from "./plugins"
|
||||||
import defaultsLoader from "./defaults"
|
import defaultsLoader from "./defaults"
|
||||||
import Logger from "./logger"
|
import Logger from "./logger"
|
||||||
|
import config from "../config"
|
||||||
|
|
||||||
export default async ({ directory: rootDirectory, expressApp }) => {
|
export default async ({ directory: rootDirectory, expressApp }) => {
|
||||||
const container = createContainer()
|
const container = createContainer()
|
||||||
@@ -28,7 +31,13 @@ export default async ({ directory: rootDirectory, expressApp }) => {
|
|||||||
return this
|
return this
|
||||||
}.bind(container)
|
}.bind(container)
|
||||||
|
|
||||||
|
// Economical way of dealing with redis clients
|
||||||
|
const client = new Redis(config.redisURI)
|
||||||
|
const subscriber = new Redis(config.redisURI)
|
||||||
|
|
||||||
container.register({
|
container.register({
|
||||||
|
redisClient: client,
|
||||||
|
redisSubscriber: subscriber,
|
||||||
logger: asValue(Logger),
|
logger: asValue(Logger),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import config from "../config"
|
|||||||
* @interface
|
* @interface
|
||||||
*/
|
*/
|
||||||
class EventBusService {
|
class EventBusService {
|
||||||
constructor({ logger }) {
|
constructor({ logger, redisClient, redisSubscriber }) {
|
||||||
/** @private {logger} */
|
/** @private {logger} */
|
||||||
this.logger_ = logger
|
this.logger_ = logger
|
||||||
|
|
||||||
@@ -20,17 +20,13 @@ class EventBusService {
|
|||||||
/** @private {BullQueue} used for cron jobs */
|
/** @private {BullQueue} used for cron jobs */
|
||||||
this.cronQueue_ = new Bull(`cron-jobs:queue`, config.redisURI)
|
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 = {
|
const opts = {
|
||||||
createClient: type => {
|
createClient: type => {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case "client":
|
case "client":
|
||||||
return client
|
return redisClient
|
||||||
case "subscriber":
|
case "subscriber":
|
||||||
return subscriber
|
return redisSubscriber
|
||||||
default:
|
default:
|
||||||
return new Redis(config.redisURI)
|
return new Redis(config.redisURI)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user