diff --git a/packages/api/src/jobs/rss/refreshAllFeeds.ts b/packages/api/src/jobs/rss/refreshAllFeeds.ts index 264b2db5a..c9b93f196 100644 --- a/packages/api/src/jobs/rss/refreshAllFeeds.ts +++ b/packages/api/src/jobs/rss/refreshAllFeeds.ts @@ -90,9 +90,12 @@ export const queueRSSRefreshAllFeedsJob = async () => { return queue.add('refresh-all-feeds', {}) } +type QueuePriority = 'low' | 'high' + export const queueRSSRefreshFeedJob = async ( jobid: string, - payload: any + payload: any, + options = { priority: 'high' as QueuePriority } ): Promise => { const queue = createBackendQueue() if (!queue) { @@ -102,5 +105,6 @@ export const queueRSSRefreshFeedJob = async ( jobId: jobid, removeOnComplete: true, removeOnFail: true, + lifo: options.priority == 'high', }) } diff --git a/packages/api/src/utils/createTask.ts b/packages/api/src/utils/createTask.ts index 3c38c4cfc..3d3b9f3ce 100644 --- a/packages/api/src/utils/createTask.ts +++ b/packages/api/src/utils/createTask.ts @@ -660,7 +660,9 @@ export const enqueueRssFeedFetch = async ( )}_${stringToHash(JSON.stringify(subscriptionGroup.userIds.sort()))}` if (redisDataSource.workerRedisClient) { - let job = await queueRSSRefreshFeedJob(jobid, payload) + let job = await queueRSSRefreshFeedJob(jobid, payload, { + priority: 'high', + }) if (!job || !job.id) { throw 'unable to queue rss-refresh-feed-job, job did not enqueue' }