Pipeline Scheduling
Pipelines can run on a schedule, on demand, or both. Scheduling uses cron expressions with full timezone support, including correct handling of daylight saving time transitions.
Setting a schedule
To schedule a pipeline:
- Open the pipeline in the DAG builder
- Click Schedule in the toolbar
- Enter a cron expression or use the visual schedule builder
- Select a timezone
- Configure the concurrent execution policy
- Optionally set a schedule window
- Click Save
A pipeline can have one schedule. To run the same pipeline on multiple schedules, create separate pipelines that reference the same steps, or use multiple cron expressions separated by the pipe character (e.g., 0 6 * * 1-5 | 0 12 * * 0 for weekday mornings and Sunday noon).
Cron expressions
Rime uses standard 5-field cron expressions:
minute hour day-of-month month day-of-week| Field | Values | Special characters |
|---|---|---|
| Minute | 0-59 | * , - / |
| Hour | 0-23 | * , - / |
| Day of month | 1-31 | * , - / |
| Month | 1-12 | * , - / |
| Day of week | 0-6 (Sunday = 0) | * , - / |
Common patterns
| Schedule | Cron expression |
|---|---|
| Every hour | 0 * * * * |
| Every 6 hours | 0 */6 * * * |
| Daily at 2:00 AM | 0 2 * * * |
| Weekdays at 6:00 AM | 0 6 * * 1-5 |
| Every Monday at midnight | 0 0 * * 1 |
| First of every month at 3:00 AM | 0 3 1 * * |
| Every 15 minutes during business hours | */15 9-17 * * 1-5 |
Visual schedule builder
If you prefer not to write cron expressions, the visual builder lets you select:
- Frequency — every N minutes, hourly, daily, weekly, or monthly
- Time — specific hour and minute for daily/weekly/monthly schedules
- Days — specific days of the week or month
The builder generates the cron expression for you. You can switch between the builder and the raw expression at any time.
Timezone support
Every schedule runs in a specific timezone. Rime uses IANA timezone identifiers (e.g., Pacific/Auckland, Australia/Sydney, America/New_York). The default is Pacific/Auckland.
The timezone determines when the cron expression fires. A schedule of 0 6 * * * in Pacific/Auckland fires at 6:00 AM New Zealand time, regardless of what time that is in UTC.
Daylight saving time
Rime handles DST transitions correctly:
Spring forward (clocks advance). If your schedule is set for a time that does not exist during the transition (e.g., 2:30 AM when clocks skip from 2:00 to 3:00), the pipeline runs at the next valid time after the transition (3:00 AM in this case).
Fall back (clocks retreat). If your schedule is set for a time that occurs twice during the transition (e.g., 2:30 AM when clocks go back from 3:00 to 2:00), the pipeline runs once, during the first occurrence.
In New Zealand, DST transitions happen on the last Sunday of September (spring forward) and the first Sunday of April (fall back). If your pipeline is sensitive to exact timing around these dates, consider using UTC as your timezone.
Manual triggering
You can always trigger a pipeline manually, regardless of whether it has a schedule:
- Open the pipeline page
- Click Run Now
- The pipeline starts immediately
Manual runs are tracked in the same execution history as scheduled runs. The trigger type (manual or scheduled) is recorded in the run metadata.
Concurrent execution policy
When a scheduled run is due but a previous run is still executing, Rime follows the concurrent execution policy you configured:
| Policy | Behaviour |
|---|---|
| Skip (default) | The new run is skipped entirely. The next scheduled run proceeds as normal. |
| Queue | The new run is queued and starts as soon as the current run finishes. At most one run is queued at a time; additional triggers while a run is queued are skipped. |
| Allow parallel | The new run starts immediately alongside the existing run. Use this only when the pipeline’s steps are safe to run concurrently (e.g., read-only queries). |
Choose Skip for most pipelines. Long-running transformations should not stack up. Choose Queue when you need to ensure every scheduled run executes but not concurrently. Avoid Allow parallel unless you are confident there are no write conflicts.
Schedule windows
A schedule window restricts pipeline execution to specific hours. If a cron trigger fires outside the window, the run is skipped.
To set a schedule window:
- In the schedule configuration, enable Restrict to window
- Set the start time and end time (in the pipeline’s configured timezone)
- Optionally restrict to specific days of the week
Example: a pipeline with a cron expression of */30 * * * * (every 30 minutes) and a window of 06:00-22:00 on weekdays will run every 30 minutes between 6 AM and 10 PM, Monday through Friday. Weekend and night-time triggers are skipped.
Schedule windows are useful when:
- Snowflake warehouse costs need to be contained to business hours
- Downstream consumers only need data refreshed during specific periods
- Source systems have maintenance windows where extraction would fail
Retry policies
When a pipeline step fails, the retry policy determines whether it is retried automatically before the step is marked as failed.
Configure retry policies at the pipeline level (applies to all steps) or override per step:
| Setting | Description | Default |
|---|---|---|
| Max retries | Number of times to retry a failed step before marking it as permanently failed | 0 (no retries) |
| Backoff interval | Time to wait before the first retry | 60 seconds |
| Backoff multiplier | Each subsequent retry waits this many times longer than the previous (exponential backoff) | 2 |
| Max backoff | Upper limit on wait time between retries | 30 minutes |
Example: with max retries = 3, backoff interval = 60s, and multiplier = 2, the retry schedule is:
- First retry after 60 seconds
- Second retry after 120 seconds
- Third retry after 240 seconds
If the step succeeds on any retry, execution continues normally. If all retries are exhausted, the step fails and the pipeline’s failure policy takes effect (see Building Pipelines).
When to use retries
Retries are useful for transient failures:
- Network timeouts connecting to source systems
- Snowflake warehouse auto-resume delays
- External webhook endpoints that are temporarily unavailable
Retries are not useful for deterministic failures:
- Invalid SQL syntax
- Missing table references
- Authentication failures
A step that fails with the same error on every attempt wastes time retrying. If you see the same error across all retry attempts, the issue needs manual investigation.
Next steps
- Learn how edits are tracked in Pipeline Versioning
- Monitor execution in real time in Pipeline Execution
- Set up failure alerts in Monitoring