How can we configure a holiday setting for the JobScheduler?
Question:
We will be setting up jobs to be run everyday. We also need a mechanism to build in a holiday schedule for the entire year that is not lost on a weekend restart. So I need to configure JobScheduler not to run on say 10 specific days in a year. What is the best way to do this?
Answer:
Holidays can be configured at a global level for all jobs and per job. Dates configured at both levels can be persistent - i.e. they are not lost on restart as they are either saved in the scheduler.xml
configuration file or the relevant run times can be configured in the editor web interface and stored in a database. Configuring holidays is supported by the graphical JobScheduler Object Editor, JOE. The configuration of holidays is described in detail in the articles:
The following examples illustrate how holidays can be configured at the XML level using any editor.
Holidays for all jobs
Holiday configuration with the scheduler.xml configuration file<config> <holidays> <holiday date="2006-12-25"/> ... <holiday date="2006-12-26"/> </holidays> <jobs/> <job_chains/> </config>
Holidays for a specific job
Holiday configuration with the run-time of a specific job<job> <run_time let_run="no"> <period single_start = "08:00"/> <holidays> <holiday date="2006-06-19"/> ... <holiday date="2006-07-19"/> </holidays> </run_time> </job>
Holidays re-used by a number of jobs
A holiday configuration can be written to a specific XML file and includes just the
<holidays>
element and subsequent elements like this:
Holiday configuration file<holidays> <holiday date="2006-06-19"/> ... <holiday date="2006-07-19"/> </holidays>
The above holiday configuration file is assumed to be available from the file
/globals/company_holidays.xml
and is referened like this from a job:
Run-time configuration with reference to a global holidays file<job> <run_time let_run="no"> <period single_start = "08:00"/> <holidays> <include live_file="/globals/company_holidays.xml"/> <include live_file="../customers/bank_holidays.xml"/> </holidays> </run_time> </job>
- If the referenced holiday file is located in the
live
folder tree then it is referenced by use of thelive_file
attribute.- Changes to a holiday file in the
live
folder tree are automatically detected and are applied by JobScheduler. - An absolute path to the holidays file is considered to start from the
live
folder. - A relative path can be used that start from the folder that contains the curent job.
- Changes to a holiday file in the
- If the referenced file is located outside of the
live
folder tree then thefile
attribute has to be used. Changes to a hoiday file outside of thelive
folder are not automatically detected and applied.
- If the referenced holiday file is located in the