Scheduled Tasks

Scheduled Tasks are pipelines that run on a schedule. You can create a Scheduled Task in Designer or Project Manager. In Designer, you can:
  • Create a task in an open pipeline
  • Schedule it for a one-time execution on a specific date and time
  • Set it to recur at intervals
  • Follow a complex schedule like a cron job
Alternatively, you can create or update a Scheduled Task in Project Manager and assign the underlying pipeline to it. Once created, you can monitor Scheduled Tasks in the Monitor.

Key features

  • Advanced Scheduling Logic for Repeatable Jobs: Create Cron jobs based on calendar dates, clock time, frequency, end dates, and across time zones.
  • Blackout Dates: Set exceptions for dates when the pipeline should not be invoked, useful for planned outages or holidays.
Note: Task Queuing is a new feature that improves the resiliency of Scheduled Task executions. Learn more.

Prerequisites

  • You must have permissions to project space and project to create and update Scheduled Tasks
  • You must have a Cloudplex or Groundplex set up to run Scheduled Tasks successfully.
  • The Snaplex owner must either have execute permission on the Projects where the Scheduled Tasks are defined or be a member of the Admins group.

Support and limitations

  • A Scheduled Task can take up to 10 minutes past the scheduled time to execute. If it misses that window, the task does not execute.
  • If a pipeline run is skipped because another instance is already running, the job history shows only the first skip. Subsequent job skips do not appear in the job history.
  • If you open a Scheduled Task seconds after updating it, the UI might display the This task is not scheduled to run message, because the update can take time for the Snaplex to compute the next runtime.

Best practices

The Do not start a new execution if one is already active option (available for both Scheduled and Triggered Tasks) prevents a pipeline from running concurrently with a prior, still-active execution of itself. It works best when there's a comfortable margin between how often the Task fires and how long the pipeline actually takes to run: on a multi-node Snaplex, this protection relies on near-real-time coordination between nodes, so a brief window exists where a new execution can start before the Snaplex recognizes that a prior execution is still active elsewhere. The wider the margin between fires and run time, the less that window matters in practice.

This option is less effective for:

  • Pipelines scheduled to fire frequently (for example, every minute) whose typical run time is close to, or can occasionally exceed, the interval between fires. The next fire can be evaluated before the Snaplex finishes recognizing that the prior run is still active.
  • Pipelines whose run time varies, such as those that depend on upstream systems or data volume, since an occasional slow run narrows the margin even when the schedule is normally safe.
  • Scheduled Tasks that start later than planned, for example because of a grace-period delay, a Snaplex restart, or a period of high load, since a late start narrows the margin for that run the same way a long run does.

To keep this option effective:

  • Schedule Tasks with enough margin between fires that the pipeline, including its slower runs, reliably finishes well before the next fire is due. Treat Tasks that regularly run close to their interval as a sign the schedule needs to slow down, not just that this option should catch the overlap.
  • Design pipelines invoked by Scheduled or Triggered Tasks to be idempotent, so that if an overlapping execution ever does slip through, running the same pipeline twice for the same input doesn't create duplicate records or corrupt state.
  • Monitor actual run time against the scheduled interval, for example on the Task Details page or in Monitor, so you can catch a pipeline trending toward its interval before it starts overlapping.
  • Treat the Do not start a new execution if one is already active option as reducing, not eliminating, the chance of an overlapping execution, especially for Tasks scheduled at or near the pipeline's typical run time.

Known issues

  • Time Zone Discrepancy: When selecting the America/Mexico City time zone, the task runtime may be off by one hour due to the city's discontinuation of daylight savings time.
    • Workaround: Upgrade your Snaplex to JDK 11.0.18+.
  • Run Counters: Scheduled Tasks that are migrated to a different project do not reset their run counters.
  • Frequency Updates: Scheduled Tasks continue executing at the previous frequency, even when the frequency is updated from 1 minute to 1 week.
  • Snaplex Scheduler: Disabling and then enabling a Scheduled Task should prevent execution while disabled, but it does not.
  • Daylight Savings: When creating iterative Scheduled Tasks in regions with Daylight Savings, we recommend you use the Cron Job option. Refer to the best practices for details.
  • Triggered Task URLs: If you change a Triggered Task to a Scheduled Task, the Triggered Task URLs remain active, allowing the pipeline to be executed through them.
    • Workaround: Create a new Scheduled Task referencing the target pipeline and disable or delete the Triggered Task.