From fe87d23a911114c1ed90d4be8437857fd496e055 Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Thu, 22 Aug 2024 12:24:41 +0800 Subject: [PATCH] use cloud task for fetching content of rss items if USE_CONTENT_FETCH_QUEUE is not set to true in the environment --- packages/api/src/jobs/rss/refreshFeed.ts | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/packages/api/src/jobs/rss/refreshFeed.ts b/packages/api/src/jobs/rss/refreshFeed.ts index 43cacb011..b0759c546 100644 --- a/packages/api/src/jobs/rss/refreshFeed.ts +++ b/packages/api/src/jobs/rss/refreshFeed.ts @@ -4,6 +4,7 @@ import { parseHTML } from 'linkedom' import Parser, { Item } from 'rss-parser' import { v4 as uuid } from 'uuid' import { FetchContentType } from '../../entity/subscription' +import { env } from '../../env' import { ArticleSavingRequestStatus } from '../../generated/graphql' import { redisDataSource } from '../../redis_data_source' import { validateUrl } from '../../services/create_page_save_request' @@ -13,7 +14,7 @@ import { updateSubscriptions, } from '../../services/update_subscription' import { findActiveUser } from '../../services/user' -import { +import createHttpTaskWithToken, { enqueueFetchContentJob, FetchContentJobData, } from '../../utils/createTask' @@ -348,8 +349,19 @@ const fetchContentAndCreateItem = async ( } try { - const task = await enqueueFetchContentJob(data) - return !!task + const useContentFetchQueue = process.env.USE_CONTENT_FETCH_QUEUE === 'true' + if (useContentFetchQueue) { + return await enqueueFetchContentJob(data) + } + + return await createHttpTaskWithToken({ + queue: 'omnivore-rss-feed-queue', + taskHandlerUrl: env.queue.contentFetchGCFUrl, + payload: { + ...data, + priority: 'high', // use one queue for all RSS feeds for now + }, + }) } catch (error) { logger.error('Error while creating task', error) return false