Files
appServerInfo/app/scheduler.js
2026-02-15 21:48:42 +01:00

27 lines
767 B
JavaScript

const cron = require("node-cron");
const pool = require("./db");
const runCheck = require("./checkRunner");
async function scheduleChecks() {
const { rows } = await pool.query("SELECT * FROM checks WHERE active = true");
rows.forEach(check => {
cron.schedule(`*/${check.schedule_seconds} * * * * *`, async () => {
const result = await runCheck(check);
await pool.query(
`INSERT INTO results (check_id, status, message, duration_ms)
VALUES ($1,$2,$3,$4)`,
[check.id, result.status, result.message, result.duration]
);
await pool.query(
`UPDATE checks SET last_run = NOW(), last_status = $1 WHERE id = $2`,
[result.status, check.id]
);
});
});
}
module.exports = scheduleChecks;