From db8284dc0b52f4f7b77fd4b407d30dfa51d8225b Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Mon, 22 Jan 2024 11:31:46 +0800 Subject: [PATCH] Wait until backend queue is ready before putting jobs into it --- packages/api/src/jobs/rss/refreshAllFeeds.ts | 4 ++-- packages/api/src/queue-processor.ts | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/api/src/jobs/rss/refreshAllFeeds.ts b/packages/api/src/jobs/rss/refreshAllFeeds.ts index d166b1afc..6a78d8596 100644 --- a/packages/api/src/jobs/rss/refreshAllFeeds.ts +++ b/packages/api/src/jobs/rss/refreshAllFeeds.ts @@ -106,7 +106,7 @@ const updateSubscriptionGroup = async ( } export const queueRSSRefreshAllFeedsJob = async () => { - const queue = getBackendQueue() + const queue = await getBackendQueue() if (!queue) { return false } @@ -126,7 +126,7 @@ export const queueRSSRefreshFeedJob = async ( payload: any, options = { priority: 'high' as QueuePriority } ): Promise => { - const queue = getBackendQueue() + const queue = await getBackendQueue() if (!queue) { return undefined } diff --git a/packages/api/src/queue-processor.ts b/packages/api/src/queue-processor.ts index 2f6b0daa9..dc6b27673 100644 --- a/packages/api/src/queue-processor.ts +++ b/packages/api/src/queue-processor.ts @@ -16,8 +16,9 @@ import { CustomTypeOrmLogger } from './utils/logger' export const QUEUE_NAME = 'omnivore-backend-queue' let backendQueue: Queue | undefined -export const getBackendQueue = (): Queue | undefined => { +export const getBackendQueue = async (): Promise => { if (backendQueue) { + await backendQueue.waitUntilReady() return backendQueue } if (!redisDataSource.workerRedisClient) { @@ -26,6 +27,7 @@ export const getBackendQueue = (): Queue | undefined => { backendQueue = new Queue(QUEUE_NAME, { connection: redisDataSource.workerRedisClient, }) + await backendQueue.waitUntilReady() return backendQueue }