Skip to content

Scheduled Jobs

Scheduled Jobs is the CronJob list: recurring schedules that fire a job on a cron expression, each owning the run history of every job it triggers. The column that matters most here is “Last success,” not “Last run” — a schedule that has fired on time every run and failed every time looks fine at a glance unless success is called out separately, which is exactly what happened to a prod partitioning schedule that fired correctly, failed silently every run, and let the partition window it existed to keep open close, dropping roughly 23 hours of events before anyone noticed. A schedule that has fired and never once succeeded is marked three different ways here — not by colour alone — for that reason.

Sidebar section Jobs → Scheduled Jobs.

The Scheduled Jobs screen in the Odysseus dashboard.
  • jobs:cronJobs.a-schedule-that-fires-and — “A schedule that fires and fails every time looks exactly like a healthy one from the outside. Open”
  • jobs:cronJobs.actions — “Actions”
  • jobs:cronJobs.are-you-sure-you-want — “Are you sure you want to delete”
  • jobs:cronJobs.cancel — “Cancel”
  • jobs:cronJobs.create-one-to-have-the — “Create one to have the platform run a container on a schedule.”
  • jobs:cronJobs.create-scheduled-job — “Create Scheduled Job”
  • jobs:cronJobs.delete — “Delete”
  • jobs:cronJobs.delete-scheduled-job — “Delete Scheduled Job”
  • jobs:cronJobs.deleting — “Deleting…”
  • jobs:cronJobs.last-fired — “Last fired”
  • jobs:cronJobs.last-success — “Last success”
  • jobs:cronJobs.loading-scheduled-jobs — “Loading scheduled jobs…”
  • jobs:cronJobs.missed — “Missed”
  • jobs:cronJobs.name — “Name”
  • jobs:cronJobs.never — “Never”
  • jobs:cronJobs.no-scheduled-jobs — “No scheduled jobs”
  • jobs:cronJobs.no-scheduled-jobs-exist-for — “No scheduled jobs exist for this tenant.”
  • jobs:cronJobs.not-yet — “Not yet”
  • jobs:cronJobs.overlap — “Overlap”
  • jobs:cronJobs.schedule — “Schedule”
  • jobs:cronJobs.scheduled-jobs — “Scheduled Jobs”
  • jobs:cronJobs.scheduled-jobs-for-the-active — “Scheduled jobs for the active tenant, with their last firing and last success”
  • jobs:cronJobs.scheduled-tasks-intro — “Tasks the platform runs on a schedule. Each one owns a single job of the same name and re-runs it on every firing.”
  • jobs:cronJobs.state — “State”
  • jobs:cronJobs.this-also-removes-the-job — “This also removes the job it owns and every run record it has accumulated. It will stop firing immediately. To pause it instead, edit it and switch it to suspended.”
  • jobs:cronJobs.timezone — “Timezone”
  • jobs:cronJobs.to-read-the-run-history — “to read the run history.”
  • jobs:cronJobDetail.are-you-sure-you-want — “Are you sure you want to delete”
  • jobs:cronJobDetail.cancel — “Cancel”
  • jobs:cronJobDetail.controller-state — “Controller state”
  • jobs:cronJobDetail.created — “Created”
  • jobs:cronJobDetail.cron-expression — “Cron expression”
  • jobs:cronJobDetail.delete — “Delete”
  • jobs:cronJobDetail.delete-scheduled-job — “Delete Scheduled Job”
  • jobs:cronJobDetail.deleting — “Deleting…”
  • jobs:cronJobDetail.edit — “Edit”
  • jobs:cronJobDetail.if-a-run-is-still — “If a run is still going”
  • jobs:cronJobDetail.last-fired — “Last fired”
  • jobs:cronJobDetail.last-success — “Last success”
  • jobs:cronJobDetail.loading-scheduled-job — “Loading scheduled job…”
  • jobs:cronJobDetail.missed-firing-grace — “Missed-firing grace”
  • jobs:cronJobDetail.missed-firings — “Missed firings”
  • jobs:cronJobDetail.never — “Never”
  • jobs:cronJobDetail.no — “No”
  • jobs:cronJobDetail.none — “none”
  • jobs:cronJobDetail.not-yet — “Not yet”
  • jobs:cronJobDetail.platform-default — “platform default”
  • jobs:cronJobDetail.queued-firing — “Queued firing”
  • jobs:cronJobDetail.revision — “Revision”
  • jobs:cronJobDetail.run-records-kept — “Run records kept”
  • jobs:cronJobDetail.schedule — “Schedule”
  • jobs:cronJobDetail.scheduled-jobs — “← Scheduled Jobs”
  • jobs:cronJobDetail.status — “Status”
  • jobs:cronJobDetail.suspended — “Suspended”
  • jobs:cronJobDetail.the-new-firing-is-dropped — “the new firing is dropped”
  • jobs:cronJobDetail.the-new-firing-waits — “the new firing waits”
  • jobs:cronJobDetail.the-running-one-is-replaced — “the running one is replaced”
  • jobs:cronJobDetail.this-also-removes-the-job — “This also removes the job it owns and every run record it has accumulated. To stop it firing without losing any of that, cancel and edit it to suspended.”
  • jobs:cronJobDetail.timezone — “Timezone”
  • jobs:cronJobDetail.updated — “Updated”
  • jobs:cronJobDetail.view-run-history — “View run history”
  • jobs:cronJobDetail.what-it-runs — “What it runs”
  • jobs:cronJobDetail.written-by-the-platform-read — “Written by the platform, read-only here. These values are never included when this schedule is saved — the API rejects a write that sets them.”
  • jobs:cronJobDetail.yes-it-will-not-fire — “Yes — it will not fire”
  • jobs:cronJobEdit.cancel — “Cancel”
  • jobs:cronJobEdit.edit-scheduled-job — “Edit Scheduled Job”
  • jobs:cronJobEdit.last-fired — “Last fired”
  • jobs:cronJobEdit.last-success — “Last success”
  • jobs:cronJobEdit.loading-scheduled-job — “Loading scheduled job…”
  • jobs:cronJobEdit.managed-by-the-platform-not — “Managed by the platform — not editable”
  • jobs:cronJobEdit.missed-firings — “Missed firings”
  • jobs:cronJobEdit.never — “Never”
  • jobs:cronJobEdit.not-yet — “Not yet”
  • jobs:cronJobEdit.revision — “Revision”
  • jobs:cronJobEdit.save-changes — “Save changes”
  • jobs:cronJobEdit.saving — “Saving…”
  • jobs:cronJobEdit.these-values-are-written-by — “These values are written by the control plane and are not part of this form. They are not sent when you save; the API rejects a save that tries to set them.”
  • jobs:cronJobEdit.what-it-runs — “What it runs”
  • jobs:cronJobEdit.when-it-runs — “When it runs”
  • jobs:cronJobNew.cancel — “Cancel”
  • jobs:cronJobNew.create-scheduled-job — “Create Scheduled Job”
  • jobs:cronJobNew.creating — “Creating…”
  • jobs:cronJobNew.lowercase-letters-digits-and-hyphens — “Lowercase letters, digits and hyphens, up to 63 characters. No job of this name may already exist — the schedule creates and owns one.”
  • jobs:cronJobNew.name — “Name *”
  • jobs:cronJobNew.scheduled-jobs — “← Scheduled Jobs”
  • jobs:cronJobNew.the-platform-will-run-this — “The platform will run this container on the schedule below. It owns one job of the same name and re-runs it on every firing, so the run history accumulates in one place.”
  • jobs:cronJobNew.what-it-runs — “What it runs”
  • jobs:cronJobNew.when-it-runs — “When it runs”
  • Requires cronjobs:create. See the roles reference for which roles hold it.
  • Requires cronjobs:delete. See the roles reference for which roles hold it.
  • Requires cronjobs:delete. See the roles reference for which roles hold it.
  • Requires cronjobs:update. See the roles reference for which roles hold it.

This screen’s component declares no permission-gated controls.

This screen’s component declares no permission-gated controls.

Every field is in the cronjob manifest; the walkthrough for creating one is schedule a recurring job, and the concept behind it is scheduled work. The individual jobs a schedule creates show on the Jobs screen.