AutoMate has the ability to execute numerous tasks simultaneously. The maximum number of simultaneously run tasks as specified in the global priority options defaults to 50. On the other hand, there are certain situations when a particular task may need to run independent and uninterrupted from all other tasks. The Priority feature in AutoMate provides the capability to set priority levels to each managed task.
AutoMate can be instructed whether or not to run a task in concurrence with other tasks, and how to handle a conflict if one takes place between tasks. For example, such an option is useful when an interactive task must make sure that a particular window stays in the foreground in order to send keystrokes to it. If another task were to run and try to focus an unrelated window, it would eventually interfere with the task that is attempting to send keystrokes, thus failing one, or possibly both tasks.
AutoMate can also be instructed to limit the number of simultaneously running tasks on a per task basis (as opposed to globally). This is useful if trying to limit the amount of system resources (i.e. CPU and memory usage) utilized. The Priority options also allows Task Isolation levels to be set on a per task basis.
Task Prioritization involves two points - first, under what conditions the task will not be allowed to run (priority condition), and second, what to do with the task if such a condition arises (priority conflict).
Task Priority can be set for the following four conditions:
The task is free to operate alongside other tasks, and runs without checking any priority conditions. However, this does not make it impervious from being suspended, stopped or queued by another task that has already begun with priorities that conflict with this task. For example, if a task with priority settings Run Alone has already started, the task set to the option Always Runs will not immediately execute, but rather, it will have to wait in a queue assuming the conflict action Hold task indefinitely is selected. (This parameter is set by default)
Limit number of simultaneous instances of this task
AutoMate checks if running the current task will cause the total number of running tasks with the same name to exceed the specified value selected under the option Max number of running tasks. If so, AutoMate uses the selected priority conflict action (explained below under If condition is not met parameter).
Limit number of simultaneous tasks
AutoMate checks if running the current task will cause the total number of running tasks to exceed the specified value chosen under the Max number of running tasks option. If so, AutoMate uses the selected priority conflict action.
The task only runs if there are no other tasks running. This is equivalent to the priority condition Limit number of simultaneous tasks with the total allowable tasks set to 1.
Max number of running tasks
If the option Limit number of simultaneous instances of this task or Limit number of simultaneous tasks is selected, this parameter becomes enabled and allows you to select the maximum number of running tasks.
If the condition is not met
When a task cannot run because its priority condition is not met, the task is either ignored and never run, or placed into a queue of waiting tasks. The queue is examined each time a running task ends, and priority conditions of each queued tasks are re-evaluated to see if the task can now be run. Available priority conflict actions are as follows:
Hold task indefinitely
The task is placed into the "waiting tasks" queue until all other prioritized tasks have completed. Queued tasks will run in the order that they were placed in the queue.
Hold task then abort
The task is placed into the "waiting tasks" queue and waits for the amount of minutes specified. If the time elapses before conditions change that allow the task to run, the task is automatically removed from the queue and discarded. If a 'Schedule Watcher' trigger initially launches the task, it is rescheduled based on the 'Schedule Watcher' trigger's
Hold task then interrupt all running tasks
The task is placed into the "waiting tasks" queue and waits for the amount of minutes specified. If the time elapses before the change to allow the task to run, all the tasks currently running on the system are forcibly stopped (aborted), and the current task begins immediately thereafter. When used in conjunction with the 'Run Alone' priority condition, this provides a task the highest possible running authority.
Interrupt all other running tasks
All running tasks are interrupted and the current task begins immediately.
Interrupt all other running instances of this task
All tasks with the same name as the currently running task are interrupted and the current task begins immediately.
The task does not run at all. If a 'Schedule Watcher' trigger is set to launch the task, it is re-scheduled based on the trigger's re-scheduling parameters.
If the option Hold task then abort or Hold task then interrupt all running tasks is selected, this parameter becomes enabled allowing you to select the total amount of minutes to hold the task before other actions take place.
AutoMate managed tasks can be tailored to execute with varying degrees of isolation allowing for faster startup speeds. A specific task can be set to run under a single pre-loaded process allowing faster startup speeds but eliminating the task from being isolated from other running tasks, or a task can be set to start in its own process isolating it from other running tasks at the cost of a reduction in startup speeds.
The available managed task isolation levels are:
The first task instance starts from a pre-loaded process providing faster startup for that task. If other task instances start while the first instance is currently running, each of those tasks will start from their own process which may reduce their startup speed. However, since each subsequent task is isolated in its own process, failure of an individual task will not effect other running tasks.
All tasks are set to start in their own process as opposed to starting from a single pre-loaded process. The first task instance and subsequent simultaneous task instances must wait for their corresponding process to start, thus, reducing overall startup speed. However, because each task is isolated in their own process, they become independent from all other running tasks. Therefore, failure of a particular task will not effect other running tasks.
The first task instance and all other simultaneous instances start from a pre-loaded process allowing for optimum startup speeds. However, since all tasks are run from the same process, failure of a single task will effect all tasks that are running under the same process.
NOTE: Using the Isolation feature may change startup speeds by only a few seconds. Therefore, task isolation should be modified only if startup speeds are significantly slow or are imperative to the overall progress or result of a task.
Setting Task Priority Properties
Limiting Simultaneous Tasks
About Creating Tasks
Creating a Task Using the Wizard
Creating a Task Without the Wizard