Specifications

Maximum concurrent slots for
this category
Task types in this categoryTask category
“Concurrent file transfers”
preference
FTP, MailNetwork
Within each category concurrency is further limited by the serialization needs of each task type.
Thus even when a slot is available for a particular category, a task in that category may not match
the slot because, for example, another task of the same type is already executing and the task
type has the serialized execution mode.
Light and heavy scripts
Scripts include many of the tools built-in to Switch, and all third-party script packages.
Initially a script is heavy. If its entry points consistently complete quickly (in less than 1 second
for 5 consecutive times) the script becomes light, until it violates this “trust” by not completing
within 1 second once – it then becomes heavy again.
Scheduling tasks
The scheduler removes tasks from the task queue and schedules them for execution in one of
the available slots. The scheduler attempts to schedule a task:
Each time a new task is queued (because a slot may be available that does not match the
previously queued tasks).
Each time an execution slot becomes available because a tasks has completed (because there
may be a queued task that matches this slot).
The scheduler selects a task for execution by narrowing down the set of queued tasks using the
following steps:
1. Start with the set of all tasks on the queue that match any available execution slot.
2. Narrow down to tasks for jobs that have the highest job priority in the task set.
3. Narrow down to the task that was placed on the queue first.
The selection process ends as soon as the result set contains a single task (in which case the task
is scheduled for execution) or is empty (in which case no action can be taken). The last step
selects a single task so the selection process always ends.
14.2 Job priorities
The internal job ticket for each job contains a field that determines the priority of the job.
Tasks for jobs with a higher priority are executed first (unless the higher-priority task has no
matching execution slot; see scheduling jobs). This can be used to “rush” a particular job through
a flow, or to define a high-priority flow (by assigning a higher priority to all jobs in the flow).
211
Enfocus Switch 10