From 81dfeb43ea5aee92771a84c4dbf8d73bc3166522 Mon Sep 17 00:00:00 2001 From: Derek Wene Date: Wed, 14 Jun 2023 09:24:35 -0500 Subject: [PATCH] feat(medusa): add redis_prefix in configModule.projectConfig (#4268) --- .changeset/shy-tools-cheat.md | 5 +++++ packages/medusa/src/loaders/express.ts | 5 ++++- packages/medusa/src/services/job-scheduler.ts | 8 ++++++-- packages/types/src/common/config-module.ts | 3 ++- 4 files changed, 17 insertions(+), 4 deletions(-) create mode 100644 .changeset/shy-tools-cheat.md diff --git a/.changeset/shy-tools-cheat.md b/.changeset/shy-tools-cheat.md new file mode 100644 index 0000000000..221f718903 --- /dev/null +++ b/.changeset/shy-tools-cheat.md @@ -0,0 +1,5 @@ +--- +"@medusajs/medusa": patch +--- + +feat(medusa): add ability to prefix all redis cache keys in project config diff --git a/packages/medusa/src/loaders/express.ts b/packages/medusa/src/loaders/express.ts index def8cb39f7..0fb701b0d3 100644 --- a/packages/medusa/src/loaders/express.ts +++ b/packages/medusa/src/loaders/express.ts @@ -41,7 +41,10 @@ export default async ({ app, configModule }: Options): Promise => { if (configModule?.projectConfig?.redis_url) { const RedisStore = createStore(session) const redisClient = redis.createClient(configModule.projectConfig.redis_url) - sessionOpts.store = new RedisStore({ client: redisClient }) + sessionOpts.store = new RedisStore({ + client: redisClient, + prefix: `${configModule?.projectConfig?.redis_prefix ?? ""}sess:`, + }) } app.set("trust proxy", 1) diff --git a/packages/medusa/src/services/job-scheduler.ts b/packages/medusa/src/services/job-scheduler.ts index 63c477eff1..87b5413155 100644 --- a/packages/medusa/src/services/job-scheduler.ts +++ b/packages/medusa/src/services/job-scheduler.ts @@ -30,6 +30,10 @@ export default class JobSchedulerService { this.config_ = config this.logger_ = logger + const prefix = `${config?.projectConfig?.redis_prefix ?? ""}${ + this.constructor.name + }` + if (singleton && config?.projectConfig?.redis_url) { // Required config // See: https://github.com/OptimalBits/bull/blob/develop/CHANGELOG.md#breaking-changes @@ -40,13 +44,13 @@ export default class JobSchedulerService { this.queue_ = new Queue(`scheduled-jobs:queue`, { connection, - prefix: `${this.constructor.name}`, + prefix, }) // Register scheduled job worker new Worker("scheduled-jobs:queue", this.scheduledJobsWorker, { connection, - prefix: `${this.constructor.name}`, + prefix, }) } } diff --git a/packages/types/src/common/config-module.ts b/packages/types/src/common/config-module.ts index e053dfe8d0..ba41fa3c4c 100644 --- a/packages/types/src/common/config-module.ts +++ b/packages/types/src/common/config-module.ts @@ -23,6 +23,7 @@ export type HttpCompressionOptions = { export type ProjectConfigOptions = { redis_url?: string + redis_prefix?: string redis_options?: RedisOptions session_options?: SessionOptions @@ -35,7 +36,7 @@ export type ProjectConfigOptions = { database_schema?: string database_logging: LoggerOptions - // @deprecated - only postgres is supported, so this config has no effect + // @deprecated - only postgres is supported, so this config has no effect database_type?: string http_compression?: HttpCompressionOptions