Scheduled Jobs

Summary

Scheduled execution is a persisted operational contract, not just a cron string beside a job definition.

Problem

Cron metadata can describe intent, but production scheduling also needs pause state, missed-run behavior, next occurrence calculation, manual overrides, and repair after deployment or scheduler downtime.

Principle

Persist schedule state and arm future work explicitly. Keep the scheduler as a state reconciler rather than a hidden business engine.

Platform Shape

The execution modes doc describes manual-first job schedules, schedule-owned future Cloud Tasks for DAGs and campaign schedules, and the future single-job scheduling target. Job schedule state and transitions live under services/ops/job_schedules.

Source Evidence

  • docs/reference/job-execution-modes.md
  • services/ops/job_schedules
  • app/scheduler
  • jobs/ops/ensure_code_dags/run.py
  • docs/engineering/architecture/scheduler-model.md
  • docs/engineering/architecture/database-vs-cloud-tasks-dispatch.md