core/apps/webapp/app/bullmq/start-workers.ts
2025-10-24 23:35:46 +05:30

44 lines
1.3 KiB
TypeScript

/**
* BullMQ Worker Startup Script
*
* This script starts all BullMQ workers for processing background jobs.
* Run this as a separate process alongside your main application.
*
* Usage:
* tsx apps/webapp/app/bullmq/start-workers.ts
*/
import { logger } from "~/services/logger.service";
import {
ingestWorker,
documentIngestWorker,
conversationTitleWorker,
deepSearchWorker,
sessionCompactionWorker,
closeAllWorkers,
} from "./workers";
export async function startWorkers() {}
// Handle graceful shutdown
process.on("SIGTERM", async () => {
logger.log("SIGTERM received, closing workers gracefully...");
await closeAllWorkers();
process.exit(0);
});
process.on("SIGINT", async () => {
logger.log("SIGINT received, closing workers gracefully...");
await closeAllWorkers();
process.exit(0);
});
// Log worker startup
logger.log("Starting BullMQ workers...");
logger.log(`- Ingest worker: ${ingestWorker.name}`);
logger.log(`- Document ingest worker: ${documentIngestWorker.name}`);
logger.log(`- Conversation title worker: ${conversationTitleWorker.name}`);
logger.log(`- Deep search worker: ${deepSearchWorker.name}`);
logger.log(`- Session compaction worker: ${sessionCompactionWorker.name}`);
logger.log("All BullMQ workers started and listening for jobs");