diff options
Diffstat (limited to 'packages/trpc')
| -rw-r--r-- | packages/trpc/routers/admin.ts | 10 | ||||
| -rw-r--r-- | packages/trpc/routers/bookmarks.ts | 67 | ||||
| -rw-r--r-- | packages/trpc/testUtils.ts | 1 |
3 files changed, 55 insertions, 23 deletions
diff --git a/packages/trpc/routers/admin.ts b/packages/trpc/routers/admin.ts index 5e169857..2935f2e8 100644 --- a/packages/trpc/routers/admin.ts +++ b/packages/trpc/routers/admin.ts @@ -11,7 +11,6 @@ import { OpenAIQueue, SearchIndexingQueue, TidyAssetsQueue, - triggerReprocessingFixMode, triggerSearchReindex, VideoWorkerQueue, WebhookQueue, @@ -238,7 +237,14 @@ export const adminAppRouter = router({ }, }); - await Promise.all(bookmarkIds.map((b) => triggerReprocessingFixMode(b.id))); + await Promise.all( + bookmarkIds.map((b) => + AssetPreprocessingQueue.enqueue({ + bookmarkId: b.id, + fixMode: true, + }), + ), + ); }), reRunInferenceOnAllBookmarks: adminProcedure .input( diff --git a/packages/trpc/routers/bookmarks.ts b/packages/trpc/routers/bookmarks.ts index 77f40878..b6acadd6 100644 --- a/packages/trpc/routers/bookmarks.ts +++ b/packages/trpc/routers/bookmarks.ts @@ -1,5 +1,6 @@ import { experimental_trpcMiddleware, TRPCError } from "@trpc/server"; import { and, count, eq, gt, inArray, lt, or } from "drizzle-orm"; +import { EnqueueOptions } from "liteque"; import invariant from "tiny-invariant"; import { z } from "zod"; @@ -32,8 +33,8 @@ import { AssetPreprocessingQueue, LinkCrawlerQueue, OpenAIQueue, + SearchIndexingQueue, triggerRuleEngineOnEvent, - triggerSearchDeletion, triggerSearchReindex, triggerWebhook, } from "@karakeep/shared/queues"; @@ -420,37 +421,60 @@ export const bookmarksAppRouter = router({ }; }); + const enqueueOpts: EnqueueOptions = { + // The lower the priority number, the sooner the job will be processed + priority: input.crawlPriority === "low" ? 50 : 0, + }; + // Enqueue crawling request switch (bookmark.content.type) { case BookmarkTypes.LINK: { // The crawling job triggers openai when it's done - await LinkCrawlerQueue.enqueue({ - bookmarkId: bookmark.id, - }); + await LinkCrawlerQueue.enqueue( + { + bookmarkId: bookmark.id, + }, + enqueueOpts, + ); break; } case BookmarkTypes.TEXT: { - await OpenAIQueue.enqueue({ - bookmarkId: bookmark.id, - type: "tag", - }); + await OpenAIQueue.enqueue( + { + bookmarkId: bookmark.id, + type: "tag", + }, + enqueueOpts, + ); break; } case BookmarkTypes.ASSET: { - await AssetPreprocessingQueue.enqueue({ - bookmarkId: bookmark.id, - fixMode: false, - }); + await AssetPreprocessingQueue.enqueue( + { + bookmarkId: bookmark.id, + fixMode: false, + }, + enqueueOpts, + ); break; } } - await triggerRuleEngineOnEvent(bookmark.id, [ - { - type: "bookmarkAdded", - }, - ]); - await triggerSearchReindex(bookmark.id); - await triggerWebhook(bookmark.id, "created"); + await triggerRuleEngineOnEvent( + bookmark.id, + [ + { + type: "bookmarkAdded", + }, + ], + enqueueOpts, + ); + await triggerSearchReindex(bookmark.id, enqueueOpts); + await triggerWebhook( + bookmark.id, + "created", + /* userId */ undefined, + enqueueOpts, + ); return bookmark; }), @@ -671,7 +695,10 @@ export const bookmarksAppRouter = router({ eq(bookmarks.id, input.bookmarkId), ), ); - await triggerSearchDeletion(input.bookmarkId); + await SearchIndexingQueue.enqueue({ + bookmarkId: input.bookmarkId, + type: "delete", + }); await triggerWebhook(input.bookmarkId, "deleted", ctx.user.id); if (deleted.changes > 0 && bookmark) { await cleanupAssetForBookmark({ diff --git a/packages/trpc/testUtils.ts b/packages/trpc/testUtils.ts index ee9d1d42..4d4bbde5 100644 --- a/packages/trpc/testUtils.ts +++ b/packages/trpc/testUtils.ts @@ -87,7 +87,6 @@ export function defaultBeforeEach(seedDB = true) { triggerRuleEngineOnEvent: vi.fn(), triggerSearchReindex: vi.fn(), triggerWebhook: vi.fn(), - triggerSearchDeletion: vi.fn(), })); Object.assign(context, await buildTestContext(seedDB)); }; |
