Adds speedtest pg-boss worker with injectable runner for testing, hourly cron enqueue, and /api/speedtest/history (GET) + /run (POST, owner-only) routes. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
25 lines
710 B
JavaScript
25 lines
710 B
JavaScript
import cron from 'node-cron';
|
|
import { runSync } from './sync_source_docs.js';
|
|
import { log } from '../log.js';
|
|
import { enqueue } from '../jobs/queue.js';
|
|
|
|
export function startCron() {
|
|
// Daily at 03:00 local time
|
|
cron.schedule('0 3 * * *', async () => {
|
|
try {
|
|
const n = await runSync();
|
|
log.info({ enqueued: n }, 'cron sync.source_doc complete');
|
|
} catch (e) {
|
|
log.error({ err: e }, 'cron sync.source_doc failed');
|
|
}
|
|
});
|
|
|
|
// Hourly speedtest
|
|
cron.schedule('0 * * * *', async () => {
|
|
try { await enqueue('speedtest', {}); log.info('cron speedtest enqueued'); }
|
|
catch (e) { log.error({ err: e }, 'cron speedtest failed'); }
|
|
});
|
|
|
|
log.info('cron started');
|
|
}
|