feat(scraper): worker-only entry for horizontal scaling (Raspberry Pi nodes)

This commit is contained in:
Rene Fichtmueller 2026-06-11 15:28:11 +00:00
parent 1ba598e7ae
commit 7c9bd10941

View File

@ -0,0 +1,21 @@
/**
* Worker-only entry processes pg-boss jobs WITHOUT running the scheduler/cron
* or the startup zombie-cleanup (those belong to the single primary daemon).
* For horizontal scaling across extra machines (Raspberry Pis).
*/
import { createScheduler, registerWorkers } from "./scheduler";
async function runWorkerOnly(): Promise<void> {
console.log("=== TIP Scraper WORKER-ONLY (no scheduler, no cron) ===\n");
process.on("unhandledRejection", (reason) => {
const msg = reason instanceof Error ? reason.message : String(reason);
if ((msg.includes("ENOENT") || msg.includes("no such file")) && msg.includes("request_queues")) return;
console.error("[worker] Unhandled rejection:", reason);
process.exit(1);
});
const boss = await createScheduler();
await registerWorkers(boss);
console.log("Worker node ready — pulling jobs from shared pg-boss queues.\n");
}
runWorkerOnly().catch((err) => { console.error("Fatal:", err); process.exit(1); });