feat(api): split Redis connection for BullMQ vs cache (RFC-004 Phase 3 WS1)
Introduce getRedisConnection('cache' | 'queue') so ops can point BullMQ at
a separate Redis instance from the cache/throttler/ws-adapter without a
code change. Falls back to REDIS_HOST/PORT/PASSWORD when REDIS_QUEUE_*
vars are unset, so dev and single-instance deploys are unchanged.
- New helper + describeRedisTopology() (safe summary, never leaks password)
- BullModule.forRoot now uses the queue connection
- .env.example documents optional REDIS_QUEUE_HOST/PORT/PASSWORD
- 6 unit tests cover defaults, fallback, precedence, shared/split topology,
and password leak prevention
Refs: GOO-175
Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
13
.env.example
13
.env.example
@@ -32,6 +32,19 @@ REDIS_PORT=6379
|
||||
REDIS_PASSWORD=CHANGE_ME_IN_PRODUCTION
|
||||
REDIS_URL=redis://:${REDIS_PASSWORD}@${REDIS_HOST}:${REDIS_PORT}
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Redis — Queue (BullMQ)
|
||||
#
|
||||
# RFC-004 Phase 3: the async backbone (BullMQ) can point at a Redis instance
|
||||
# separate from cache / throttler / websocket to keep hot cache traffic from
|
||||
# starving queue operations. If unset, queue traffic falls back to the cache
|
||||
# REDIS_* vars above (single-instance dev and small deployments keep working
|
||||
# unchanged).
|
||||
# -----------------------------------------------------------------------------
|
||||
# REDIS_QUEUE_HOST=
|
||||
# REDIS_QUEUE_PORT=
|
||||
# REDIS_QUEUE_PASSWORD=
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Typesense
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user