diff --git a/packages/api/src/jobqueue.ts b/packages/api/src/jobqueue.ts index 4ca026bff..b7539c2b4 100644 --- a/packages/api/src/jobqueue.ts +++ b/packages/api/src/jobqueue.ts @@ -1,34 +1,14 @@ -import { env } from './env' - -import { Queue, RedisOptions } from 'bullmq' -import Redis from 'ioredis' +import { Queue } from 'bullmq' +import { mqRedisClient } from './redis' const createRSSRefreshFeedQueue = (): Queue | undefined => { - if (!env.redis.url) { - return undefined - } - const redisOptions = (): RedisOptions => { - if (env.redis.url?.startsWith('rediss://') && env.redis.cert) { - return { - tls: { - ca: env.redis.cert, - rejectUnauthorized: false, - }, - maxRetriesPerRequest: null, - } - } - return { - maxRetriesPerRequest: null, - } - } - - const connection = new Redis(env.redis.url ?? '', redisOptions()) - return new Queue('rssRefreshFeed', { connection }) + return new Queue('rssRefreshFeed', { + connection: mqRedisClient, + }) } -const rssRefreshFeedJobQueue = createRSSRefreshFeedQueue() - export const addRefreshFeedJob = async (jobid: string, payload: any) => { + const rssRefreshFeedJobQueue = createRSSRefreshFeedQueue() if (!rssRefreshFeedJobQueue) { return false } diff --git a/packages/api/src/redis.ts b/packages/api/src/redis.ts index ebc2b75d6..27c241a06 100644 --- a/packages/api/src/redis.ts +++ b/packages/api/src/redis.ts @@ -1,5 +1,7 @@ import { Redis } from 'ioredis' import { env } from './env' +import { Redis } from 'ioredis' +import { RedisOptions } from 'bullmq' const url = env.redis.url const cert = env.redis.cert diff --git a/packages/api/src/server.ts b/packages/api/src/server.ts index 4f1fe52bb..d93a66a16 100755 --- a/packages/api/src/server.ts +++ b/packages/api/src/server.ts @@ -15,7 +15,7 @@ import { config, loggers } from 'winston' import { makeApolloServer } from './apollo' import { appDataSource } from './data_source' import { env } from './env' -import { redisClient } from './redis' +import { redisClient, mqRedisClient } from './redis' import { articleRouter } from './routers/article_router' import { authRouter } from './routers/auth/auth_router' import { mobileAuthRouter } from './routers/auth/mobile/mobile_auth_router' @@ -163,6 +163,13 @@ const main = async (): Promise => { console.log('Redis Client Connected:', env.redis.url) } + // redis for message queue + if (env.redis.url) { + mqRedisClient?.on('error', (err) => { + console.error('Redis Client Error', err) + }) + } + const { app, apollo, httpServer } = createApp() await apollo.start()