What is a schedule?
Schedules serve to prepare a job to run at a later time or recurrently following a time pattern.
A schedule contains a scheduling of a job template with optional recurrences. For every time the schedule hits, a new job will be created from this template (template data is documented in Templates Data) or a specific job description. Further explanations can be found in Understanding ROAD Schedules.
Standby schedules are used to ensure that recordings can start with minimal latency and controlled by external devices.
When to use a schedule
Do you want to record a specific show that happens regularly? Use a schedule.
Do you want to control a recording with external controls, e.g. a general purpose I/O (GPIO) device or an Ember+ device? Use a standby schedule.
Schedule list: view and manage all your schedules
On the ROAD Scheduling main page, you can quickly see all the schedules in your ROAD system.
(1) Top bar
On the top bar, you can - from left to right:
- Switch to another DAVID Systems application
- Switch the connection to another ROAD Service host
- Get information about ROAD Scheduling
- Do user-related actions (e.g. sign out)
(2) Search pane
You can filter the list of schedules based on two criteria:
- Text search in schedule name
- Host on which the schedules will be executed
(3) Schedule actions
The schedule action menu allows to...
- create a new schedule.
- edit or duplicate a selected schedule.
- delete selected schedules.
- enable and disable selected schedules. As schedules may have running jobs you have to confirm the operation.
- refresh the list of schedules.
- extract the job description part of a schedule and save it as a job template
(4) Schedule list
This view shows you the schedules in your ROAD system.
You can reorder and resize columns, depending on what matters to you. Your preferred settings will automatically be saved in the DPE Parameters database.
The column "Next occurrence" shows either the next pending occurrence to run the scheduled job or the state of a currently active scheduled job. This always refers to the time when the list was updated.
Schedule editor: creating, editing or duplicating a schedule
Schedule from Template
Schedule with Recording description
(1) Back to Schedules
This button will bring you back to the Schedules list.
If you made some changes on the current Schedule, you will be asked if you want to save the change.
(2) General Schedule info
Here you can decide what your Schedule will be named and put a short description to help you and your team remember what it is for.
You will also be asked to select which ROAD host will execute the task that you want to run. Mind that local resources like input devices are only available on a specific host.
(3a) Job Settings: From Template
Using templates allows you to quickly and efficiently create Schedules or jobs on the flight, using a predefined job description (including source and destination specification).
First select a job type to filter down the list of templates. Then select the template you want to be processed.
(3b) Jobs Settings: Recording
You can decide to set up a recording. In this case you will be asked to select the source, the format and the destination of the recording.
Supported sources are web stream (you can configure it using a JSON spec from the ROAD Streaming Configurator), ASIO and WASAPI devices. ASIO and WASAPI devices depend on the host currently selected in the (2) General Schedule info. For audio devices a selection of one or multiple channels is mandatory.
For the output you see a choice of Digas tables you have access to. Additionally enter a title to be used for the created entry.
In case the recording is meant to run for a long time, you can split the output audio file into segments by selecting the "Divide into segments" option. With this option you get an input field to enter the length of recording entries.
(3c) Jobs Settings: External Control
An external control device can be used to control a job.
Currently we support:
- General Purpose IO (GPIO) devices, e.g. a hardware relay card
- Ember+ devices
General Purpose IO Config
- For input events: Connect the state (event) of an input channel of your device to to an action to be executed, e.g. a recording is started when a button is pressed
- For output events: Connect a condition to the state (event) of an output channel of your device, e.g. a light bulb goes on when condition matches
- For input events: Connect the state (event) of an Ember+ node to to an action to be executed
- For output events: Connect a condition to the state (event) of an Ember+ node
(4) Occurrences and Recurrences
In this section you define when the schedule will run and for how long. You can either force the task to stop after a defined duration, or let it run indefinitely (or until it stops by itself, e.g. for certain templates).
You can add multiple occurrences at specific times or make each repeat in a daily, weekly or monthly manner.
You can edit, add, delete and duplicate occurrences.
Each occurrence is defined by
- start date and time
- duration or to be indefinite: Indefinite means the scheduling engine of ROAD won't care for stopping a job. So it will either stop by itself (e.g. because the input stops) or it's meant to run forever (24/7 recording)
- optional repeat pattern: Can be daily, weekly or monthly. Here the start time is the start of the pattern. A job will be created on several days, always at this time.
Option "Resume interrupted jobs": Select this option to make the scheduler resume a job if the Service is restarted while an occurrence is to be active (so either within the period between start and stop time or after start and indefinite). Updating an active schedule might also lead into restarting it with this option. It is recommended to use this option for all long-time schedules.
Avoid Overlapping Occurrences
It is absolutely not recommended to create overlapping occurrences of a schedule. A new occurrence starting before the last ends might cause unexpected behavior. Having two occurrences starting at the same time might cause only one of them to be executed.
(4a) 24/7 Jobs
Jobs which should run all the time (mostly for steady recordings) are recommended to be configured by
- Start time: Any time of the day, but preferred a time when a short interrupt is acceptable
- Duration 24 hours
- Repeat by daily pattern
This means such jobs will run for 24 hours, being recurrent every day. This guarantees the job is periodically restarted at a foreseeable time. At this time the recording job is being stopped and new job is started, which can lead into a gap or overlap. The duration of this gap or overlap depends on deviation of timing of the audio source and the host machine's system clock. This is evident especially for streaming sources.
Only by using this pattern a special condition is treated for daylight saving time switches. When they occur, the duration is automatically adjusted to 23 hours in spring and 25 hours in autumn, so the deviating day duration is considered.
Only if the option "Resume interrupted jobs" is set, interrupted jobs will be restarted with next chance. Otherwise only the next day's occurrence will be started after an interrupt.
(4b) Standby Jobs
A special case of Occurrence/Recurrence are Standby jobs. A Standby job doesn't have a schedule, because it is permanently active. It is started automatically when the ROAD Service starts up, and it is automatically restarted within a configurable time frame, when it is terminated for any reason.
Standby jobs are particularly useful, when they are controlled by an External Control like GPIO or Ember+.