From bbd65fd6123f7d1a93d1f6a68f2b933d53ec3c23 Mon Sep 17 00:00:00 2001 From: Mohamed Bassem Date: Sun, 8 Feb 2026 02:11:51 +0000 Subject: feat: Add separate queue for import link crawling (#2452) * feat: add separate queue for import link crawling --------- Co-authored-by: Claude --- packages/shared-server/src/queues.ts | 12 ++++++++++++ packages/trpc/routers/bookmarks.ts | 8 +++++++- 2 files changed, 19 insertions(+), 1 deletion(-) (limited to 'packages') diff --git a/packages/shared-server/src/queues.ts b/packages/shared-server/src/queues.ts index fd9dac83..4d4a61d6 100644 --- a/packages/shared-server/src/queues.ts +++ b/packages/shared-server/src/queues.ts @@ -96,6 +96,18 @@ export const LinkCrawlerQueue = createDeferredQueue( }, ); +// Separate queue for low priority link crawling (e.g. imports) +// This prevents low priority crawling from impacting the parallelism of the main queue +export const LowPriorityCrawlerQueue = createDeferredQueue( + "low_priority_crawler_queue", + { + defaultJobArgs: { + numRetries: 5, + }, + keepFailedJobs: false, + }, +); + // Inference Worker export const zOpenAIRequestSchema = z.object({ bookmarkId: z.string(), diff --git a/packages/trpc/routers/bookmarks.ts b/packages/trpc/routers/bookmarks.ts index 0bbf4fb7..565558c3 100644 --- a/packages/trpc/routers/bookmarks.ts +++ b/packages/trpc/routers/bookmarks.ts @@ -19,6 +19,7 @@ import { import { AssetPreprocessingQueue, LinkCrawlerQueue, + LowPriorityCrawlerQueue, OpenAIQueue, QueuePriority, QuotaService, @@ -282,7 +283,12 @@ export const bookmarksAppRouter = router({ switch (bookmark.content.type) { case BookmarkTypes.LINK: { // The crawling job triggers openai when it's done - await LinkCrawlerQueue.enqueue( + // Use a separate queue for low priority crawling to avoid impacting main queue parallelism + const crawlerQueue = + input.crawlPriority === "low" + ? LowPriorityCrawlerQueue + : LinkCrawlerQueue; + await crawlerQueue.enqueue( { bookmarkId: bookmark.id, }, -- cgit v1.2.3-70-g09d2