UNPKG

@tomei/customer-base

Version:

Tomei Customer Base Package

40 lines (34 loc) 975 B
import { Queue } from 'bullmq'; import { Redis } from 'ioredis'; import { ISyncJobData } from '../../interfaces/sync-job-data.interface'; const ENV = process.env.ENV || process.env.NODE_ENV || 'local'; const DB_BY_ENV: Record<string, number> = { test: 3, staging: 2, production: 1, prod: 1, local: 1, }; const connection = new Redis({ host: process.env.REDIS_HOST || 'localhost', port: parseInt(process.env.REDIS_PORT || '6379'), db: Number(DB_BY_ENV[ENV] ?? 1), password: process.env.REDIS_PASSWORD || undefined, maxRetriesPerRequest: null, }); export function getQueueConnection() { return connection; } export const syncQueue = new Queue<ISyncJobData>('syncQueue', { connection, prefix: `cb:${ENV}`, defaultJobOptions: { attempts: +(process.env.SYNC_JOB_ATTEMPTS || 3), backoff: { type: 'exponential', delay: +(process.env.SYNC_JOB_BACKOFF || 1000), }, removeOnComplete: true, removeOnFail: false, }, });