How It Works
Jobs are registered in a central registry and executed via three triggers:
Cron (HTTP) Vercel cron hits
/api/cron/[job]Scheduler setInterval in persistent containers
Manual Admin dashboard at
/admin/jobsEvery execution is logged to PostgreSQL with status, duration, trigger type, and result count. The runJob() wrapper handles timing and fire-and-forget logging — if the DB insert fails, the job result is still returned.