import cron from 'node-cron'; import { getDb } from '../db/index.js'; import { probeStream } from './probe.js'; const probe = probeStream; export async function runHealthCheck() { const db = getDb(); const streams = db.prepare('SELECT id, url FROM streams').all(); const update = db.prepare( "UPDATE streams SET last_status = ?, last_checked_at = datetime('now') WHERE id = ?" ); for (const s of streams) { const status = await probe(s.url); update.run(status, s.id); } return streams.length; } export function scheduleHealthCheck(expr) { if (!expr) return null; return cron.schedule(expr, () => { runHealthCheck().catch((err) => console.error('[health]', err)); }); }