DocsFeaturesJob scheduling

Job scheduling

Interval scheduling and immediate manual runs.

Chronoverse creates jobs automatically from workflow intervals or immediately through a manual API command.

Automatic runs

The scheduling worker polls for due workflows, validates generation and build state, and creates a job with trigger AUTOMATIC.

Manual runs

An authenticated client calls POST /workflows/{workflow_id}/jobs/schedule with an Idempotency-Key. The created job uses trigger MANUAL but follows the same claim, lease, execution, logging, notification, and analytics path.

Manual scheduling requires the target workflow to belong to the caller and to be schedulable: not terminated and past its build. Requests against someone else's workflow, an unknown workflow, or a workflow that has not finished building return 404 Not Found.

Duplicate prevention

Manual requests use command idempotency. Automatic scheduling uses persisted dispatch metadata and generation guards. Kafka redelivery does not imply a new logical run.

Failure threshold

Workflows track consecutive job failures against their configured limit. Terminal job events update that state and can affect subsequent workflow behavior.

Filtering

The jobs list supports cursor pagination plus status and trigger filters, making automatic and manual history distinguishable without separate storage paths.