Job and Job Bundle Scheduling
About Job and Job Bundle Scheduling
You can use scheduling to control when and how often (daily/weekly/monthly/custom) to execute a single Job or a Job Bundle (hereafter referred to as a Job) instead of having to manually initiate (kick-off) the Job Run each time.
Job Scheduling provides a single point-of-control mechanism to create a new schedule, track all pending schedules (in tandem with the Calendar), and manage all pending/in-progress/expired schedules as they are created, updated, executed, and managed by XPRESSO.
You can schedule a Job Run to execute:
As a one-time event or as a recurring event - Daily | Weekly | Monthly | Custom.
To run at a fixed time and date.
To run at a custom interval where you choose the interval repeat frequency - Days | Hours | Minutes.
To run with or without a Clean file where a new image is provided and loaded on to the device(s) under test.
When a scheduled Run Request completes, you get both a notification and an email stating your run request results are available. You can access the result using the provided link in the email or via the Request details page.
Job Schedules are created on the Registered Jobs/Bundle page. Once created, they can viewed and managed (Edit | Cloned | Deleted) on the Job Schedules page. Job Schedules can also be viewed on the Calendar page which provides holistic view of the selected month.
You can view all "booked or pending" schedules for a specific Job run on the following dashboard pages (see the Viewing Schedules sub-topic below for additional details):
Why Job Scheduling Matters?
The main goal of Job scheduling is to maximize your lab resource utilization while providing the flexibility to easily manage your workflow while running your Jobs in a priority order you set/control. Job Scheduling has the following attributes:
Provides the mechanism to determine how important each Job is and it makes sure your prioritization methodology takes precedence as other jobs are queued.
Provide the ability to limit the number of jobs that are executing at the same time based on testbed availability and execution engine resources; XPRESSO can intelligently prioritize all incoming Job Runs so it maximizes all available resources.
Provides the same behavior/traits as setting up a crontab file but the way you schedule your Jobs is much easier, faster, and with extended options.
Provides the ability to schedule recurring Job runs (for example, nightly builds) in order to validate image builds against a set criterion.
Provides the ability to schedule regular Job runs when the testbed/resources are under-utilized.
Provides the ability to establish baseline Job runs at a regular scheduled intervals to prove the stability of the system, and/or image builds.
Increases general productivity by eliminating the lag time when compared to executing Job Runs manually in odd hours of the day.
Creates an order and flow to your testbed utilization. All Group members can easily access the Calendar page to quickly determine what testbed time-slots are available and to determine if important Job runs are scheduled at the appropriate time.
As schedules associated with Job runs are populated on the Calendar over time, it provides a quick visual cue to determine the overall utilization of your lab resources.
Where Scheduled Jobs Sit in the Priority/Reservation Queue Hierarchy
All Jobs that are scheduled to execute are subject to the testbed queuing rules enforced by XPRESSO. Normally, Jobs with the highest designated priority take precedent on a first-in, first-out basis. Job Runs in the testbed queue that have a reservation take precedence over other Job Runs of the same priority or lower.
IMPORTANT:
When you schedule a Job to run, XPRESSO submits the Job for a "specified" time-slot to be dispatched on the designated testbed. However, this allocated time-slot is still subject to background (persistent and ongoing) queuing rules as other Job Runs are created, scheduled to run, and dispatched.
Therefore, if a Job Run is dispatched with a higher priority than your Job, this will bump your Job from your allocated time-slot to the next available time-slot subject to the same queuing rules. If your Job is bumped, it will bypass all Job runs that have a reservation applied to them as they take precedence over other Job runs of the same priority or lower.
You are not notified in the event your Job run is bumped; you will be notified in the event your Job run is terminated during it scheduled time period.
Job Schedule Limitations and Dependencies
The following limitations and dependencies apply to Job Schedules:
When creating a Job schedule: Schedules can only start or stop on the hour or half-hour.
When the Job schedule is running: Each Job Request is defined with a maximum request runtime period to ensure the testbed queue do not build up indefinitely (the maximum runtime of a Job profile/bundle is set as the default maximum request life-time for a Job schedule). If your Job run is not dispatched within the life-span of the defined schedule request life-time, the Job run is terminated with status set to "Expired".
When modifying a schedule: You can only edit the title of the Job schedule, date/time, and recurrence frequency of an existing schedule. If you want to make any other changes, you need to delete the current schedule and create a new one.
Recurring Schedules
When you create a recurring schedule, XPRESSO creates an individual schedule request for each date/time specified in the recurrence. Each of these requests are then queued for each scheduled time-slot.
The following rules apply to recurring Job Schedules:
Creating recurring schedules: Each scheduled request in queue is subject to the above limitations and queuing rules accordingly.
Deleting recurring schedules: When you delete a recurring schedule, you can choose to delete a selected occurrence or delete all occurrences.
CAUTION!
When customizing a recurring schedule, if you schedule a short time interval to repeat your Job Run, this can lead to heavy resource loading on your testbed and may significantly increase your testing cycle-time. XPRESSO attempts to mitigate this from happening by restricting the time period that is set by the 'Maximum Request Lifetime' parameter associated with short-interval scheduled Jobs.
Creating a New Job or Job Bundle Execution Schedule
Job Schedules are created on the Jobs page. Job Bundle schedules are created on the Bundled page Both Job and Job Bundle Schedules are viewed and managed on the Job Schedules page. Both Job and Bundle Jobs have the same flow for scheduling.
To Create a New Job or Job Bundle Execution Schedule:
Choose one of the following as appropriate:
- From the Main Navigation Bar, choose Main Menu→EXECUTION→Jobs to open the Registered Jobs page.
- From the Main Navigation Bar, choose Main Menu→EXECUTION→Bundles to open the Registered Job Bundle page.
Locate and highlight the Job or Job Bundle that you want to create a schedule for and click the Schedule DEFAULT floating action button on the right side of the page. The New Schedule wizard opens.
NOTE:
The New Schedule wizard has two steps with two different functions:
- Step 1 Basic Info: Provides the user interface to configure all parameters associated with creating the Job schedule.
- Step 2 Schedule Profiles: Provides a list of all schedule profiles associated with the Job that are scheduled (pending) to execute and key parameter settings.
- As required, configure the following parameters in Step 1 Basic Info on the New Schedule wizard.
Title: Provide a title to identify your schedule.
Recurrence: Specify if your Job Run is:
- A one-time event; choose "None".
- A recurring event; you can set a repeat frequency of: Daily | Weekly | Monthly | Custom. If you choose Custom, you can set a repeat frequency to specify the number of: Days | Hours | Minutes.
Start Date: Specify the start date for the Job schedule.
Start Time: Specify the start time for the Job schedule.
End Date: Specify the end date for the Job schedule.
End Time: Specify the end time for the Job schedule.
More Options:
Maximum Request Lifetime: Specify the maximum time for a Job to wait in the priority queue; if the Job does not activate within the specified schedule duration, the schedule associated with the Job run expires.
Include the Testbed Clean in Request: Specify if your Job runs with or without a Clean file.
- Click the Save button to save all changes. Your new schedule appears on the Job and Reservation Event Schedules page with a blue color scheme. See the Performing Operations on Job Schedules sub-topic below for details about which actions can be performed with existing Job Schedules.
Viewing Job Schedules
You can view all "booked or pending" schedules for a specific Job on the following dashboard pages:
On the Job Schedule page (Main Navigation Bar→Main Menu→EVENTS→Job Schedule).
On the Job and Reservation Event Schedules page (Main Navigation Bar→Main Menu→EVENTS→Calendar). Click on a Job Schedule (highlighted with a blue color scheme) to access the Job Schedule date and time details and to perform operations on a Job Schedule: Edit | Clone | Delete; an Overview button provides a quick link to the Job Schedule details page.
Choose one of the following to perform an operation on a Job Schedule:
- From the Main Navigation Bar, choose Main Menu→EVENTS→Job Schedules to open the Job Schedules page.
- From the Main Navigation Bar, choose Main Menu→EVENTS→Calendar to open the Job and Reservation Event Schedules page.
Locate and highlight the Job schedule that you want to perform the operation on and click the appropriate floating action button located: (1) On the Job Schedules page; to the right of the selected Job schedule (2) Job and Reservation Event Schedules page; single-click the reservation to reveal the Job Schedule details; the buttons are located below.
- Overview: (only available on the Job and Reservation Event Schedules page) Provides a quick link to the Job Schedule details page.
- Edit: Allows you to edit the following Job Schedule details: Title | Start-date | Type of Recurrence. For any other changes you want to make, you must delete the Job schedule and recreate it.
- Clone: Allows you to make a duplicate of an existing Job Schedule; change the title of the new Job schedule to provide a unique identifier and if necessary, tweak any parameters details for the new application. If the duplicate schedule does not meet your new requirement (since limited parameter fields can be modified), you will need to create a new Job Schedule.
- Delete: Allows you to delete a pending Job schedule as your Job run requirements change.
Getting Notified on Important Events
Xpresso provides a capability to get notified on important events. Job Scheduling is one such. Please refer to Notifications,Messages,Actionable Requests and Webex Bot Notifications