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.
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 allows you
to set priority levels for each task to alleviate such conflicts.
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).
type of priority to set. Task Priority can be set for the following
Always Runs - 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.
Run Alone - 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.
number of running tasks
the Limit number of simultaneous
instances of this task or Limit
number of simultaneous tasks option is selected, this parameter
becomes enabled and allows you to select the maximum number of
the condition is not met
a task cannot run because its priority condition is not met, it
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 task in the queue are re-evaluated
to see which 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
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
Don't run - 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
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.
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
Default (Default value)
- 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
Always Isolate - 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
Never Isolate - 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.