Skip to main content

Jobs

A Job is a run-to-completion workload that runs on the same runtime as services, triggered manually or on a cron schedule (ADR-010).

A Job carries the same kind of image source as a service (Git or external image), a command, environment, an optional cron schedule, and a max_retries count. Each execution is recorded as a JobRun.

Scheduler

An in-process tokio scheduler ticks every minute, emits Pending runs for any job whose cron schedule is due, and a job executor drives each run to completion through the runtime, retrying on failure up to max_retries. Concurrency is guarded so a slow run does not overlap its next scheduled tick.

Run status

StatusMeaning
PendingEnqueued, not yet started
RunningExecuting in an isolated namespace
SucceededExited 0
FailedNon-zero exit (after retries)
SkippedSkipped (e.g. a prior run still active)

Triggering

  • Scheduled — set a cron schedule on the job.
  • ManualPOST /v1/jobs/{id}/run (Operator) enqueues a run immediately.

List history with GET /v1/jobs/{id}/runs. See the Scheduled jobs guide.