Schedule Job in parallel
With parallel processing, you are able to run multiple Jobs simultaneously when scheduled to the Agent+. This makes it possible to start another Job on the same machine without waiting for the previous Job to finish. This could be useful if you, for instance, want to back up the Microsoft SQL database (Job 1) and back up the Security Event Log (Job 2) on Server A. Or, you continuously monitor the state of a print queue and if the Job fails, stop the spooler service, clear the stuck job and restart the service again. These Jobs could run in parallel.
At Jobs > Scheduling, when configuring a new Job, select the option Schedule in parallel with other jobs to allow this Job to be scheduled in parallel instead of serialized (default). At Jobs > Scheduling, Activity and Job History, you can view whether the Job has run in parallel or not. It is also possible to schedule the Job in parallel via the command line option /parallel.
Keep in mind that:
- The Tasks in the Module, Project or Run Book will always run serialized in the order as configured in that Job.
- When multiple Jobs are scheduled, in parallel and serialized, the following applies:
- When a serialized Job is scheduled to run on an Agent+, the Agent+ will wait for all other running Jobs (parallel or serialized) to finish before starting the serialized Job.
- When a serialized Job is started on an Agent+, no other Jobs (parallel or serialized) will be started on that Agent until the serialized Job has finished.
- For example, if you schedule a serialized Job at 9 AM, and two parallel Jobs at 10 AM, the parallel Jobs will only start when the serialized Job has finished.
More examples of parallel processing in combination with serialized Jobs
Example 1
You schedule:
- one serialized Job (A) and two parallel Jobs (B and C) at 9 AM
The order of execution will be:
- Job A starts at 9 AM
- Job A ends at 9.30 AM
- Job B and C start at 9.30 AM in parallel
Example 2
You schedule:
- five serialized Jobs at 9 AM
The order of execution will be:
- Job 1 starts at 9 AM
- Job 1 ends at 9.05 AM
- Job 2 starts at 9.05 AM
- Job 2 ends at 9.10 AM and Job 3 starts, etc.
Example 3
You schedule:
- one serialized Job (A) at 9 AM
- two parallel Jobs (B and C) at 9:05 AM
- two serialized Jobs (D and E) at 9.10 AM
The order of execution will be:
- Job A starts at 9 AM
- Job A ends at 9.30 AM
- Job B and C start at 9.30 AM in parallel
- Job B and C end at 9:45 AM
- Job D (or E) starts at 9.45 AM in serial
Example 4
You schedule:
- five parallel Jobs at 9 AM
The order of execution will be:
- All Jobs start at 9 AM in parallel
Example 5:
Currently a parallel Job (A) is running
You schedule:
- one serialized Job (B) immediately
- one parallel Job (C) immediately
The order of execution will be:
- Job A continues execution.
- When Job A ends, Job B starts.
- When Job B ends, Job C starts.
- Certain Tasks can interfere with other Tasks when running in parallel due to operational limitations on the machine. For example, Tasks that request some types of Resources (registry keys/values, files, folders, shares, etc.) from the same fileshare. This could result in a different outcome than expected.
More scenarios that could give conflicts when run in parallel
Example 1
When scheduling the Task Perform File Operations with the option Move Files/Folders in parallel with another Task that uses these files and folders on the same server.
Example 2
When scheduling multiple Download Resource Tasks that connect to the same fileshare.
Example 3
When scheduling the Task Perform File Operations with the option Edit/Create INI file, in parallel with the Task to download a Resource with the option Parse environment variables, parameters and functions selected.
- The following Tasks are excluded, by default, from parallel processing:
- Task Install Windows Package
- Task Reboot Computer
- Task Shutdown Computer
The legacy Agent and Agents for Unix/Linux and macOS do not support parallel processing.