Scheduling Packages for Automatic Execution

Skyvia allows you to specify a schedule for a package to execute it automatically without user interaction. This may be useful if you want to configure data loading operations to run periodically or if you want to delay an operation to a later time. You can find an example of creating a package schedule in the Setting Up Replication of Salesforce Accounts and Contacts tutorial.

note Note

Backup packages cannot be scheduled to run more often than once per day.

To specify a schedule for a package, open the package for editing and under Schedule (at bottom left of the package editor) click the Set schedule button. After this a schedule editor is displayed on the page.

schedule-default

 

Schedule Editor

User interface elements of the schedule editor may be different depending on the specified settings.

Recurrence

Determines whether the package should run once or it should be run repeatedly. Can be set to Recurring or One-Time.

Run every

This setting is available only when Recurring is selected in the Recurrence drop-down list. Determines the interval the recurring package runs are repeated. Can be set to Day, Week, or Month. If you want to run your package only on several specific weekdays, select Week. If you want to run your package every day or every several hours or minutes, select Day. If you want your package to run one day per month, select Month.

Days of week

These settings are available only when Recurring is selected in the Recurrence drop-down list and Week is selected in the Run every drop-down list. Click the buttons of the weekdays to enable the package execution on the specified days.

On day/On the

These settings are available only when Recurring is selected in the Recurrence drop-down list and Month is selected in the Run every drop-down list.

These settings allow you to specify the day the package will run each month. You can specify it either as a day of the month (1st, 3rd, 15th, or etc.), or a specific weekday of a specific week (second Wednesday of the month or last Thursday of the month).

To specify the day select the day number in the drop-down list.

If you want to specify it as a specific weekday of a specific week click this button and select On the from the drop-down list.

schedule-on-day

Then select the number of the week in the first drop-down list and the weekday in the second drop-down list.

schedule-on-the

Occur once at/Recur every

These settings are available only for Recurring packages. They are not available if One-Time is selected in the Recurrence drop-down list. They are also not available for backup packages, since backup packages cannot be scheduled to run several times per day.

These settings allow you to select whether the package should execute once per each of the specified days (or every day if Day is selected in the Run every drop-down list) or it should be run several times on every of the specified days.

If you want to run package once per each of the specified days, just specify the time on which you want it to run.

schedule-occur-once-at

If you want to run it several times per day, click this button and select Recur every from the drop-down list. Then specify the time interval. Enter the number of time units into the box and click the button corresponding to the required time units - hours or minutes.

schedule-every-hour

You can also click the Set time restrictions link and limit the time period during which to run the package. Specify the Start at and End at time, and the package will run every specified number of  hours or minutes within the specified time restriction interval on specified days.

schedule-restrictions

Occurs At

This setting is available only for backup packages. Specify here the time of the day on which you want it to run.

schedule-occurs-at

Starting

Determines when to enable the schedule if Recurring is selected in the Recurrence drop-down list.

If One-Time is selected in the Recurrence drop-down list, it determines the time of the package execution. Can have one of the following two values:

Now - the package execution will start immediately (or the package execution on schedule will be enabled immediately for recurring packages).
At a specific time - you specify the time when the package execution will start (or the package execution on schedule will be enabled for recurring packages).

Please note that this parameter does not determine the actual time of the first package run, but rather the time when the schedule is applied. The time of the first run is calculated from other schedule parameters, including Occurs once at or time restrictions parameters.

Starting on

These settings are available only if At a specific time is selected in the Starting drop-down list.

Allows you to set the date and time when the package execution will start (for non-recurring packages) or when the package execution on schedule will be enabled (for recurring packages). See more details about it below.

To set the date, click the corresponding box and select the required date using the calender control.

schedule-starting-on

Time Zone

Allows you to select time zone for the schedule.

Disable Schedule/Enable Schedule

Allows you to temporary disable and enable the package schedule without deleting it.

Remove Schedule

Removes the schedule for the package.

 

How Exact Package Run Time Is Determined

One-time Runs

For packages, scheduled for one-time run (Recurrence is set to One-Time), the exact date and time when the package will actually be run is determined by the Starting and Starting on parameters.

Recurring Runs

However, for packages, scheduled for recurring runs (Recurrence is set to Recurring), the Starting and Starting on parameters don't determine the actual time of the first run. Instead, they determines the time, since which the package schedule is considered "active" and can start the package, but the actual time of the first run is determined by other parameters:

If a package is set to Occurs once at (the package runs once per day or more rarely), the time specified in the Occurs once at parameter determines when it will run. The package will run the first time, when this time comes first time after the Starting on date and time.
If a package is set to Recur every (the package runs every specified number of hours or minutes), the package run times are determined in a more complex way. They depend on the frequency, specified in the Recur every parameter and time restrictions, specified in Start at and End at parameters.
 
The first package run within the day will be scheduled at the Start at time (or 00:00, if time restrictions are not set). Then package runs will happen every Recur every hours or minutes, till the time of the run does not exceed the End at time.
 
So, the first actual run time, is the earliest time of the scheduled run as described above, which is greater or equal than the time, set in the Starting and Starting on parameters. And then package runs will continue as described above.

Examples

For example, suppose, you want to schedule a package to run every hour, but not at 00:00, 01:00, 02:00, ... etc., but at 00:30, 01:30, 02:30, etc. Setting Starting on parameter to 00:30 (or any number of hours and 30 minutes) won't help in this case. Instead, click the Set time restrictions link and set Start at to 00:30. Leave the default value for End at, and your package will run every hour at the number of minutes, specified in the Start at parameter.

schedule-30m

Let's consider another example. Suppose we need to run a package twice per day, at 8:00 and 14:00. We set the package to recur every 6 hours (14:00 - 8:00). We set Start at to 8:00. End at should be more than the time of the second package run, but less than unwanted third package run. In this example, I have set it to 14:30.

schedule-2-times

In this example, Starting on is set to 01/03/2019 13:00. This means that the package will run first time with this schedule on 01/03/2019 at 14:00., because this is when the time of scheduled package run (determined from frequency and time restrictions) is greater or equal than the Starting on parameter.