Queue Object (QUEUE)
Executable objects are always processed within a Queue object. Queues are virtual spaces in which processes are submitted for execution; they allow you to sort out, separate and break out these processes in different lanes. They determine the maximum number tasks that can run in parallel as well as their priorities, thus, they are basic load balancing tools. Although they are active objects, Queues cannot be executed.
Object Definition
Object class: Active object
Object type/Short form: QUEUE
This topic provides information on the following:
- Overview
- Viewing the Queues in your System
- Queue Status
- Defining Queues
- Priority Management
- Capping Parallel Executions
You assign a Queue to an executable object
- either on the object Attributes Page while defining it, or
-
at runtime using the :PUT_ATT script element for attribute QUEUE.
When you modify object attributes dynamically and assign them new values, these values apply to only that particular generation and are not stored in the object.
If an object has no specific Queue assigned to it, the system automatically uses the CLIENT Queue to process it.
Queues can be assigned to the following objects:
- Workflow
- Notification
- Event
- File Transfer
- Group
- Job
- Remote Task Manager
- Schedule
- Script
The number of objects that you can assign to a Queue object is not limited.
Viewing the Queues in your System
All the queues that are available in the client you are logged into are visible both in the Administration Perspective and in the Process Monitoring. In the later case, you can filter the tasks processed in your client per queue.
In Client 0, the list of queues shows all Queue objects in all clients in the system. Accordingly, it is possible to filter the queues to be displayed per client:
You need special access rights to be able to access the Administration Perspective.
Queues can have the following status:
- Active:
- Inactive:
-
Queue with 0 slots:
The maximum number slots for this queue is set to 0, that is, it is not possible to start tasks. See Maximum Slots.
You can change queue statuses from either the Administration Perspective or Process Monitoring perspective.
In the Administration Perspective, you can select multiple queues and right-click to change all of their statuses or right-click a single queue to change it's status. From the right-click option, select Stop Queue/Start Queue to change queue status(es). You can also open the queue and edit it's settings, including its maximum slots.
In the Process Monitoring perspective, you can only right-click to change a single queue's status. From the right-click option, select Stop Queue/Start Queue to change queue status.
The steps for defining a Queue object (QUEUE) are the same as for any other Automic object. This section describes the settings that are specific to only Queue objects.
A Queue object definition is made up of the following pages:
- Standard pages that are always available, no matter what type of object you are defining:
- The object-specific page described here.
To Define a Queue
-
In the Default Settings section you specify the standard behavior of the Queue:
Field Description Maximum Slots Maximum number of tasks that can run in parallel in this Queue. The default value is unlimited.
You can enter a value between 1 and 100000 here.
When an object starts, the Queue slot is reserved before any other object are checked, such as Sync objects, available resources, maximum number of parallel tasks allowed for a particular objects, agent, etc.
Entering 0 is not allowed here. It can only set via the Queue modification.
Priority Objects are processed based on their priority. Here you specify the priority you assign to this object.
- Default value: 200
- Allowed values: 0-255
Take into account that the settings in the Exception section might affect the priority of a task and overrule this definition.
The priority defined in the Queue object is checked before the priority define in the task. If two tasks have the same Queue priority, the priority specified in the task will be used.
Time Zone You can assign a Time Zone Object (TZ) to this Queue, which will affect the time calculation. -
In the Exceptions section you can specify periods of time in which the default Queue settings do not apply. You can also define specific parameters for those periods.
- In From/To you specify the period in hours and minutes you do not want the default settings to apply.
- Optionally, select a Calendar to determine the days on which the default settings will not apply.
- Again optionally, select the Calendar Event (if any available) that further restricts the days on which the default settings will not apply.
-
Enter now the settings that should apply instead of the default ones, namely the maximum slots and priority.
You can also add a Description that helps users recognize this description later on. You can enter up to 255 characters.
The order of the exceptions in the table matters! The list is processed from top to bottom, that is, the first applicable exception is selected. You can arrange their order using the arrow up/down buttons.
This is how you work with the table:
To edit a row you must first click its checkbox to activate it. You have then the following options:
Option Description
Inserts a new row at the bottom of the table
Deletes the row Removes the entry from the list and pastes it to the clipboard. Click Paste to add it to the bottom of the table. Duplicates the entry. Click Paste to add it to the bottom of the table. Moves the selected row in the table one position up. Moves the selected row in the table one position down. Activates all rows in the table. -
To have the system to take the estimated runtime into account for all active tasks in the queue when an object starts, click the Consider ERT checkbox.
This checkbox is only available when a value is entered for in the Maximum Slots field in the queue's Default Settings section and one or more exceptions are added.
Automation Engine recommends activating this checkbox.
Please refer to Considering ERT in Queue Objects for a detailed description and examples of this function.
- Save your changes.
Queues provide priority management; this process assigns a default priority to a task. This priority can increase over time, altering priorities over processes in other queues. Operators can manually change the priority of a process on the fly.
A queue has a number of available slots. You can cap the number of parallel executions; if a Queue has 10 slots and you submit 15 tasks, 10 will execute while 5 will wait. Operators can bypass Queue restrictions.
See also:
- Considering ERT in Queue Objects
- Starting, Stopping and Modifying Queues
- CLIENT Queue
- Grouping Tasks in the Process Monitoring perspective: Queue