You can use threading to reduce job times, by running some steps from a job in parallel, on the same server or on multiple servers.
When a step's Thread property is set to Yes, the system attempts to run the step in parallel. Such a step is considered thread-enabled , and the step can be run as a separate thread (process) while the rest of the job continues. Threading obeys the following rules.
Use the Join option for the step Thread property to separate threaded blocks of steps. The first set of threaded steps must complete before the next set of threaded steps can start.
In the following example, steps 2, 3, and 4 must complete before steps 5 and 6 can start. The Join option may be selected as the value for the Thread property during step creation.
Project | Thread Property for Step |
---|---|
Step 1 | No |
Step 2 | Yes |
Step 3 | Yes |
Step 4 | Join |
Step 5 | Yes |
Step 6 | Yes |
Step 7 | No |
Use the Max Threads property for your project to keep the project from using too many system resources. Each thread-enabled step and any inline projects (which themselves might launch thread-enabled steps) can result in parallel processes, but all of those processes are counted against the maximum for the parent project. The system stops launching new parallel processes when it reaches the Max Threads value, and waits until the number of parallel processes for the project drops below the Max Threads value before continuing.