Run a worker manually, on a cron schedule in your time zone, or at a fixed interval — and how scheduled runs are made exactly once.

On this page

Every worker has a trigger: manual, or a schedule.

Manual#

The worker runs only when someone presses Run now (or a run is requested through the API). Good for on-demand jobs and for testing before you schedule.

Scheduled#

A schedule is one of:

Type Example Notes
Cron + time zone 30 8 * * 1-5 in Europe/Paris — weekdays at 08:30 Paris time Times follow the time zone you choose, including daylight saving.
Interval Every 10 minutes From one minute up to one year.

Cron quick reference#

┌ minute (0–59)
│ ┌ hour (0–23)
│ │ ┌ day of month (1–31)
│ │ │ ┌ month (1–12)
│ │ │ │ ┌ day of week (0–6, Sunday = 0)
│ │ │ │ │
30 8 * * 1-5     weekdays at 08:30
0 */4 * * *      every four hours, on the hour
0 9 1 * *        the first of every month at 09:00

Exactly once#

Each scheduled occurrence is recorded with its own key, so a run is created once even if several schedulers are running. The worker's next run time is advanced in the same step that creates the run.

Pausing#

Pausing a worker stops new scheduled runs; resuming picks up from the next occurrence. Runs aren't back-filled for the time it was paused.

YsraDocs