diff options
| author | MohamedBassem <me@mbassem.com> | 2024-02-08 15:14:23 +0000 |
|---|---|---|
| committer | MohamedBassem <me@mbassem.com> | 2024-02-08 15:15:21 +0000 |
| commit | 80bb8a108f29331cdb2f2695f6801beee104dc89 (patch) | |
| tree | b1ae2a512963a9c916c4bfed71f7633f508de131 /packages/workers/index.ts | |
| parent | 333429adbaaa592cc96b480a5228f0e3f1de4cc2 (diff) | |
| download | karakeep-80bb8a108f29331cdb2f2695f6801beee104dc89.tar.zst | |
[refactor] Move the different packages to the package subdir
Diffstat (limited to 'packages/workers/index.ts')
| -rw-r--r-- | packages/workers/index.ts | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/packages/workers/index.ts b/packages/workers/index.ts new file mode 100644 index 00000000..bf092953 --- /dev/null +++ b/packages/workers/index.ts @@ -0,0 +1,58 @@ +import { Worker } from "bullmq"; + +import { + LinkCrawlerQueue, + OpenAIQueue, + ZCrawlLinkRequest, + ZOpenAIRequest, + queueConnectionDetails, +} from "@remember/shared/queues"; +import logger from "@remember/shared/logger"; +import runCrawler from "./crawler"; +import runOpenAI from "./openai"; + +function crawlerWorker() { + logger.info("Starting crawler worker ..."); + const worker = new Worker<ZCrawlLinkRequest, void>( + LinkCrawlerQueue.name, + runCrawler, + { + connection: queueConnectionDetails, + autorun: false, + }, + ); + + worker.on("completed", (job) => { + const jobId = job?.id || "unknown"; + logger.info(`[Crawler][${jobId}] Completed successfully`); + }); + + worker.on("failed", (job, error) => { + const jobId = job?.id || "unknown"; + logger.error(`[Crawler][${jobId}] Crawling job failed: ${error}`); + }); + + return worker; +} + +function openaiWorker() { + logger.info("Starting openai worker ..."); + const worker = new Worker<ZOpenAIRequest, void>(OpenAIQueue.name, runOpenAI, { + connection: queueConnectionDetails, + autorun: false, + }); + + worker.on("completed", (job) => { + const jobId = job?.id || "unknown"; + logger.info(`[openai][${jobId}] Completed successfully`); + }); + + worker.on("failed", (job, error) => { + const jobId = job?.id || "unknown"; + logger.error(`[openai][${jobId}] openai job failed: ${error}`); + }); + + return worker; +} + +await Promise.all([crawlerWorker().run(), openaiWorker().run()]); |
