diff --git a/services/api/src/index.js b/services/api/src/index.js index 860b47d..d435640 100644 --- a/services/api/src/index.js +++ b/services/api/src/index.js @@ -25,30 +25,66 @@ modjo({ redisQueueDedup: { pluginName: "ioredis", context: (ctx) => { + const redisConfig = { + host: process.env.REDIS_QUEUE_DEDUP_HOST, + port: process.env.REDIS_QUEUE_DEDUP_PORT || "6379", + username: process.env.REDIS_QUEUE_DEDUP_USERNAME || "default", + password: process.env.REDIS_QUEUE_DEDUP_PASSWORD, + db: process.env.REDIS_QUEUE_DEDUP_DB || "0", + } + + // Add Sentinel configuration if provided + if ( + process.env.REDIS_QUEUE_DEDUP_SENTINELS && + process.env.REDIS_QUEUE_DEDUP_SENTINEL_MASTER + ) { + const sentinelEndpoints = + process.env.REDIS_QUEUE_DEDUP_SENTINELS.split(",") + redisConfig.sentinel = { + sentinels: sentinelEndpoints.map((endpoint) => { + const [host, port] = endpoint.trim().split(":") + return { host, port: parseInt(port, 10) || 26379 } + }), + name: process.env.REDIS_QUEUE_DEDUP_SENTINEL_MASTER, + } + } + ctx.set("config", { ...ctx.get("config"), - redis: { - host: process.env.REDIS_QUEUE_DEDUP_HOST, - port: process.env.REDIS_QUEUE_DEDUP_PORT || "6379", - username: process.env.REDIS_QUEUE_DEDUP_USERNAME || "default", - password: process.env.REDIS_QUEUE_DEDUP_PASSWORD, - db: process.env.REDIS_QUEUE_DEDUP_DB || "0", - }, + redis: redisConfig, }) }, }, redisHotGeodata: { pluginName: "ioredis", context: (ctx) => { + const redisConfig = { + host: process.env.REDIS_HOT_GEODATA_HOST, + port: process.env.REDIS_HOT_GEODATA_PORT || "6379", + username: process.env.REDIS_HOT_GEODATA_USERNAME || "default", + password: process.env.REDIS_HOT_GEODATA_PASSWORD, + db: process.env.REDIS_HOT_GEODATA_DB || "0", + } + + // Add Sentinel configuration if provided + if ( + process.env.REDIS_HOT_GEODATA_SENTINELS && + process.env.REDIS_HOT_GEODATA_SENTINEL_MASTER + ) { + const sentinelEndpoints = + process.env.REDIS_HOT_GEODATA_SENTINELS.split(",") + redisConfig.sentinel = { + sentinels: sentinelEndpoints.map((endpoint) => { + const [host, port] = endpoint.trim().split(":") + return { host, port: parseInt(port, 10) || 26379 } + }), + name: process.env.REDIS_HOT_GEODATA_SENTINEL_MASTER, + } + } + ctx.set("config", { ...ctx.get("config"), - redis: { - host: process.env.REDIS_HOT_GEODATA_HOST, - port: process.env.REDIS_HOT_GEODATA_PORT || "6379", - username: process.env.REDIS_HOT_GEODATA_USERNAME || "default", - password: process.env.REDIS_HOT_GEODATA_PASSWORD, - db: process.env.REDIS_HOT_GEODATA_DB || "0", - }, + redis: redisConfig, }) }, }, diff --git a/services/tasks/src/index.js b/services/tasks/src/index.js index eb544e1..5dddce5 100644 --- a/services/tasks/src/index.js +++ b/services/tasks/src/index.js @@ -49,30 +49,66 @@ modjo({ redisHotGeodata: { pluginName: "ioredis", context: (ctx) => { + const redisConfig = { + host: process.env.REDIS_HOT_GEODATA_HOST, + port: process.env.REDIS_HOT_GEODATA_PORT || "6379", + username: process.env.REDIS_HOT_GEODATA_USERNAME || "default", + password: process.env.REDIS_HOT_GEODATA_PASSWORD, + db: process.env.REDIS_HOT_GEODATA_DB || "0", + } + + // Add Sentinel configuration if provided + if ( + process.env.REDIS_HOT_GEODATA_SENTINELS && + process.env.REDIS_HOT_GEODATA_SENTINEL_MASTER + ) { + const sentinelEndpoints = + process.env.REDIS_HOT_GEODATA_SENTINELS.split(",") + redisConfig.sentinel = { + sentinels: sentinelEndpoints.map((endpoint) => { + const [host, port] = endpoint.trim().split(":") + return { host, port: parseInt(port, 10) || 26379 } + }), + name: process.env.REDIS_HOT_GEODATA_SENTINEL_MASTER, + } + } + ctx.set("config", { ...ctx.get("config"), - redis: { - host: process.env.REDIS_HOT_GEODATA_HOST, - port: process.env.REDIS_HOT_GEODATA_PORT || "6379", - username: process.env.REDIS_HOT_GEODATA_USERNAME || "default", - password: process.env.REDIS_HOT_GEODATA_PASSWORD, - db: process.env.REDIS_HOT_GEODATA_DB || "0", - }, + redis: redisConfig, }) }, }, redisQueueDedup: { pluginName: "ioredis", context: (ctx) => { + const redisConfig = { + host: process.env.REDIS_QUEUE_DEDUP_HOST, + port: process.env.REDIS_QUEUE_DEDUP_PORT || "6379", + username: process.env.REDIS_QUEUE_DEDUP_USERNAME || "default", + password: process.env.REDIS_QUEUE_DEDUP_PASSWORD, + db: process.env.REDIS_QUEUE_DEDUP_DB || "0", + } + + // Add Sentinel configuration if provided + if ( + process.env.REDIS_QUEUE_DEDUP_SENTINELS && + process.env.REDIS_QUEUE_DEDUP_SENTINEL_MASTER + ) { + const sentinelEndpoints = + process.env.REDIS_QUEUE_DEDUP_SENTINELS.split(",") + redisConfig.sentinel = { + sentinels: sentinelEndpoints.map((endpoint) => { + const [host, port] = endpoint.trim().split(":") + return { host, port: parseInt(port, 10) || 26379 } + }), + name: process.env.REDIS_QUEUE_DEDUP_SENTINEL_MASTER, + } + } + ctx.set("config", { ...ctx.get("config"), - redis: { - host: process.env.REDIS_QUEUE_DEDUP_HOST, - port: process.env.REDIS_QUEUE_DEDUP_PORT || "6379", - username: process.env.REDIS_QUEUE_DEDUP_USERNAME || "default", - password: process.env.REDIS_QUEUE_DEDUP_PASSWORD, - db: process.env.REDIS_QUEUE_DEDUP_DB || "0", - }, + redis: redisConfig, }) }, }, diff --git a/services/watchers/src/index.js b/services/watchers/src/index.js index e3ff804..4dddb19 100644 --- a/services/watchers/src/index.js +++ b/services/watchers/src/index.js @@ -27,15 +27,33 @@ modjo({ redisHotGeodata: { pluginName: "ioredis", context: (ctx) => { + const redisConfig = { + host: process.env.REDIS_HOT_GEODATA_HOST, + port: process.env.REDIS_HOT_GEODATA_PORT || "6379", + username: process.env.REDIS_HOT_GEODATA_USERNAME || "default", + password: process.env.REDIS_HOT_GEODATA_PASSWORD, + db: process.env.REDIS_HOT_GEODATA_DB || "0", + } + + // Add Sentinel configuration if provided + if ( + process.env.REDIS_HOT_GEODATA_SENTINELS && + process.env.REDIS_HOT_GEODATA_SENTINEL_MASTER + ) { + const sentinelEndpoints = + process.env.REDIS_HOT_GEODATA_SENTINELS.split(",") + redisConfig.sentinel = { + sentinels: sentinelEndpoints.map((endpoint) => { + const [host, port] = endpoint.trim().split(":") + return { host, port: parseInt(port, 10) || 26379 } + }), + name: process.env.REDIS_HOT_GEODATA_SENTINEL_MASTER, + } + } + ctx.set("config", { ...ctx.get("config"), - redis: { - host: process.env.REDIS_HOT_GEODATA_HOST, - port: process.env.REDIS_HOT_GEODATA_PORT || "6379", - username: process.env.REDIS_HOT_GEODATA_USERNAME || "default", - password: process.env.REDIS_HOT_GEODATA_PASSWORD, - db: process.env.REDIS_HOT_GEODATA_DB || "0", - }, + redis: redisConfig, }) }, },