diff --git a/server/jobs/worker.ts b/server/jobs/worker.ts new file mode 100644 index 0000000..1fdc2e3 --- /dev/null +++ b/server/jobs/worker.ts @@ -0,0 +1,24 @@ +// server/jobs/worker.ts +import { Cron } from "croner"; +import { listMachines } from "../services/machines.js"; +import { refreshMachine } from "../services/refresh.js"; + +let job: Cron | null = null; + +/** Rafraîchit toutes les machines toutes les 30 minutes (tâche de fond). */ +export function startWorker(): void { + job = new Cron("*/30 * * * *", async () => { + for (const m of listMachines()) { + try { + await refreshMachine(m.id); + } catch (err) { + console.error(`[worker] refresh échoué pour ${m.id}:`, (err as Error).message); + } + } + }); +} + +export function stopWorker(): void { + job?.stop(); + job = null; +}