Introduction
Required Knowledge
How are Jobs, Job Chains and Orders Configured?
- JobScheduler objects (jobs, job chains, orders, schedules, process classes and locks) are all configured using plain XML files. These files are saved in the so-called Live Folder (the default location of this folder or directory is
./config/live
, relative to the scheduler_data directory). The configuration for every JobScheduler object is saved individually in this folder or one of its sub-folders. - Changes to these object configuration files become effective without a restart of the JobScheduler being necessary, although on Unix® systems it may take up to a minute for a change to become effective.
- Objects can be created and modified using JOE - JobScheduler Object Editor. New objects are created by either opening an already existing configuration file in JOE, modifying it and then saving the file under a new name, or by creating and configuring a completely new file.
- A text editor could also be used to create and modify objects but working in this way requires detailed knowledge of the XML structure of each JobScheduler object (see the JobScheduler Reference documentation for more information).
Getting Started
- Create a subdirectory named quickstart within the live folder (
./config/live
) directory for the JobScheduler objects described in this article. - Start JOE (JobScheduler Object Editor) using one of the following scripts:
%SCHEDULER_HOME%\bin\jobeditor.cmd
( Windows™ )$SCHEDULER_HOME/bin/jobeditor.sh
( Unix™ )
- Use the key combination ctrl+D to open the live folder in JOE .
You can also open this dialog by selecting File -> Open Hot Folder from the menu or by clicking the red folder icon.
The live folder should have been selected by default: if not, navigate to./config/live
. Select the quickstart sub-folder.
If required you can also use this dialog to create the quickstart subdirectory. - Open JOC - the JobScheduler Operations Center.
You can use JOC to follow changes to Jobs and other objects as they happen.
You open JOC in a browser by entering the addresshttp://[scheduler_host]:[scheduler_port]
, where [scheduler_host
] and [scheduler_port
] are the host name and the TCP port number of the JobScheduler (e.g. http://localhost:4444). Note that the JobScheduler must be running before JOC is called.
Setting up a Standalone Job
Have you finished making the steps described in the Getting Started section above? Then we can continue.
The JobScheduler object tree is shown in the left hand pane of the screenshot below. Click on the Jobs element in this tree and then click on the New Standalone Job button in the right hand pane. A new Job will now be added. This will be shown in both the left hand element tree and the list of jobs in the main pane. Click on this new job.
This will open the Job configuration element as shown in the next screenshot. Give this job a name by entering, for example, firstJob in the Job Name field. Note that for a Standalone Job the Order Job: No radio button (to the right of the name) has to be selected. As already mentioned this setting is the key difference in between the configuration of a Standalone Job and that of an Order Job. In addition, this setting causes the Stop On Error checkbox to be activated (see also Error Handling below). Now enter a shell script such as the following in the Source Code text field:
@echo off echo %SCHEDULER_JOB_NAME% is running echo Current Timestamp: %DATE% %TIME% exit %ERRORLEVEL%
#!/bin/sh echo "$SCHEDULER_JOB_NAME is running" echo "Current Timestamp: `date`" exit $?
Note that a Start Period or Parameters can also be allocated to a Job (see below).
Now save this configuration, either using the ctrl+S keys or File->Save, and JOE will create the ./config/live/quickstart/firstJob.job.xml
file.
Now change to JOC and update the window using the Update button at the very top of the window. You will now see the quickstart/firstJob Job in the Jobs tab.
Click on the Job in the left hand part of the window to open a detailed view of the Job in the right hand part. Start a task for this Job by clicking on ->Start task immediately in the Job menu, as shown in the screenshot below.
The task will now start to run and you can follow its progress in the Task history by clicking on the Show log button.
This will open a new browser window with the log output, where, amongst other things, you will be able to read the output from the shell script.
Congratulations!
You have successfully configured and run your first Standalone Job.
Scheduled Job Starts
In the following example a Standalone Job is configured to start daily at 12:00 o'clock and at 14:00.
You will find the Run Time->Everyday function in the element tree in the left hand pane of JOE: this is a sub-element available for both Jobs and Orders. Use the New Period button (positioned on the right hand side) to add a new start period. Use the Apply Period button to save your input after you have selected Single Start 12:00:00 in the Start Time field. Repeat this procedure for Single Start 14:00:00.
Note that in addition to the fixed start times (Single Start), it is also possible to set the following starting modes:
- repeat intervals (Interval end/start, Interval start/start).
- run-time period when a Job is to be started outside of the Job's time period, the Job will be queued and started once its run-time period has been reached.TO CHECK
Standalone Jobs can still be started manually, regardless of whether a start time or run period has been set. It is also possible to combine the scheduled starting of a Standalone Job with Directory Monitoring, which will be described below.
Schedules
Schedules are predefined Run Time configurations, which can be specified for a specific length of time and then called up as required for any number of jobs.
Schedule elements are configured in JOE separately to jobs as can be seen in the screenshot below.
The configuration of the Schedule follows the same pattern as the configuration of Run Time parameters described above.
The Schedule is then specified for the firstJob job as shown in the screenshot below.
The code used to specify the firstJob job at the times specified in schedule1 are shown in the code block below:
Directory Monitoring
Starting a Standalone Job by Directory Monitoring
With this method of operation, a standalone job is automatically started every time a file is either added to or deleted from a monitored directory. a filter can be specified to restrict the monitoring to specific file names.
In the following example, the directory ./notification_dir
will be monitored and only files with the extension txt will be acted on.
Standalone Jobs that are started by directory monitoring can also be started manually as required. Directory monitoring can also be combined with Scheduled Starts (page 22).
In the element tree in the left hand pane in JOE you will see under each job the Run Options function. Click on the New Dir button in the Start When Directory Changed area of the right hand pane to add the directory that is to be monitored. Save this configuration by clicking the Apply Dir button after you have entered the notification_dir and \.txt$ values in the Watch Directory and File Regex fields. Repeat this procedure to add further directories or patterns.
PARAMETERS
Error Handling
A Job ends in error when the script or program it calls returns an exit code other than 0. The Job will then be stopped, unless Stop On Error (page 10) has been deactivated. Jobs that have been stopped are marked in red in the log in JOC.
To illustrate this, change the scripts of the firstJob and firstOrderJob Jobs developed in the previous examples, so that they end in error.
... exit 5
Behavior of Stopped Standalone Jobs
Stopped Standalone Jobs can be manually restarted in JOC using the Job menu->Start job immediately function. However they cannot be restarted automatically, either with a scheduled start or by directory monitoring. Use the function Job menu->Unstop in JOC to unstop a job.
Error Handling for Standalone Jobs
A Standalone Job can be configured to rerun after the Job has ended in error.
8.4.1 Scheduled Repetition of a Standalone Job Ending in Error
Select the Run Options function, which is a Job subelement in the JOE element tree. In the Delay After Error area you can use the NewDelay button to specify a scheduled (delayed) restart of the Job. Enter, for example, values for Error Count and Delay of 2 and 00:00:10. Use the Apply Delay button to save these settings. Now repeat this procedure but enter an Error Count of 5 and check the stop radio button.
When the Job first ends in error, it will be immediately restarted. However, if the Job continues to end in error, after the 2nd rerun, the restart will only take place after a delay of 10 seconds and after the 5th attempt the Job will be stopped.
Now start the Job in JOC, and look in the Task History, where the repeated job starts can be seen along with the delays they were subjected to.
Further Reading