Scheduled Jobs
What This Is For
Section titled “What This Is For”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.
How You Get Here
Section titled “How You Get Here”Sidebar section Jobs → Scheduled Jobs.
What It Looks Like
Section titled “What It Looks Like”
What It Shows
Section titled “What It Shows”/cronjobs (CronJobs)
Section titled “/cronjobs (CronJobs)”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.”
/cronjobs/:name (CronJobDetail)
Section titled “/cronjobs/:name (CronJobDetail)”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”
/cronjobs/:name/edit (CronJobEdit)
Section titled “/cronjobs/:name/edit (CronJobEdit)”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”
/cronjobs/new (CronJobNew)
Section titled “/cronjobs/new (CronJobNew)”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”
What You Can Do
Section titled “What You Can Do”/cronjobs
Section titled “/cronjobs”- Requires
cronjobs:create. See the roles reference for which roles hold it. - Requires
cronjobs:delete. See the roles reference for which roles hold it.
/cronjobs/:name
Section titled “/cronjobs/:name”- Requires
cronjobs:delete. See the roles reference for which roles hold it. - Requires
cronjobs:update. See the roles reference for which roles hold it.
/cronjobs/:name/edit
Section titled “/cronjobs/:name/edit”This screen’s component declares no permission-gated controls.
/cronjobs/new
Section titled “/cronjobs/new”This screen’s component declares no permission-gated controls.
Where To Go Next
Section titled “Where To Go Next”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.