mosh-helpdesk/server/src/lib/queue.ts

31 lines
779 B
TypeScript
Raw Normal View History

2026-02-26 20:30:42 +01:00
import { PgBoss } from "pg-boss";
2026-03-03 18:16:47 +01:00
import Sentry from "./sentry";
import { registerClassifyWorker } from "./classify-ticket";
import { registerAutoResolveWorker } from "./auto-resolve-ticket";
2026-03-02 20:48:14 +01:00
import { registerSendEmailWorker } from "./send-email";
2026-02-26 20:30:42 +01:00
const boss = new PgBoss({
connectionString: process.env.DATABASE_URL!,
});
2026-03-03 18:16:47 +01:00
boss.on("error", (error) => {
Sentry.captureException(error);
console.error(error);
});
2026-02-26 20:30:42 +01:00
export { boss };
2026-02-26 20:30:42 +01:00
export async function startQueue(): Promise<void> {
await boss.start();
await registerClassifyWorker(boss);
await registerAutoResolveWorker(boss);
2026-03-02 20:48:14 +01:00
await registerSendEmailWorker(boss);
2026-02-26 20:30:42 +01:00
console.log("Job queue started");
}
export async function stopQueue(): Promise<void> {
await boss.stop({ graceful: true, timeout: 30000 });
}