How does the scheduler service work?

The TX DWA Server Scheduler Service runs scheduled execution packages in a given environment. The Scheduler service requires a dedicated service instance with a unique service user for each environment in which you'd like scheduled execution packages to run. To run these packages, the Scheduler starts a copy of TimeXtender.exe in the background using the permissions and configuration settings of its associated service user.

For help in setting up the scheduler service, please review this article.

What rules do I need to consider when scheduling execution packages?

The TX DWA Server Scheduler Service checks for scheduled execution packages for every project in its environment every two minutes.  When it makes this check, it applies two restrictions:

  1. The service only runs one execution package per project per check
  2. The service will not start an execution package if a previously scheduled execution of that package is still running.

If multiple execution packages are scheduled to run in a single project at a specific time, only one of the packages will start.  There is no way to reliably control which package will run in this situation. For this reason, we recommend not scheduling packages within the same project to run at exactly the same time. If you want to schedule multiple packages in a single project to run in parallel, you must deconflict them. 

Schedule deconfliction and parallel processing

Space out start times

The easiest way to avoid a conflict is to space out your execution packages' scheduled start times.  You can reliably avoid a start time collision by scheduling your execution package to start five or more minutes apart.  In that case, the Scheduler service will start each package in succession.  If the first package takes more than five minutes to run, multiple execution packages will run at once.

Call packages from separate projects

If you need more than one execution package to begin at exactly the same time, you can create a new project for each additional package you need to schedule.  By adding an execution package from your main project as an external execution step, you can sidestep the limit of one package per project per time by calling each package from a different project. 

Avoiding accidental parallel execution

Please note that the check #2 - the check that looks for currently running packages - only applies to scheduled instances of an execution package. If you start a scheduled package manually, and the scheduler will not recognize it and both the manual and scheduled version of the execution may run at once. If you must manually execute a package with a schedule, it is often a good idea to disable the schedule for that package until the manual execution has completed in order to avoid having the executions overlap.

Was this article helpful?
1 out of 2 found this helpful
Have more questions? Submit a request


Please sign in to leave a comment.