Queue (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 and their priorities. For this reason, Queues are basic load balancing tools. Although they are active objects, Queues cannot be executed.

This page includes the following:

Assigning Queues to Objects

You have two possibilities to assign a Queue to an executable object:

  • On the object's Attributes page, see Attributes Page
  • 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. They are not stored in the object.

If an object has no specific Queue, the system automatically uses the Client Queue to process it. For more information, see CLIENT Queue.

Queues can be assigned to the following objects:

  • Workflow
  • Notification
  • Event
  • File Transfer
  • Group
  • Job
  • Remote Task Manager
  • Schedule
  • Script

There is no limit to the number of objects that you can assign to a Queue object.

Queue Status

Queues can have the following status:

  • Active
  • Inactive
  • Queue with 0 slots (it is not possible to start tasks), see Maximum Slots

Right-click a Queue to display the following options:

  • Set Filter to filter the list of Tasks using this Queue as criterion
  • Stop Queue/Start Queue
  • Modify its settings, including its maximum slots

Defining Queues

A Queue object definition is made up of the following pages:

Note: All the Queues in a Client are visible both in the Administration perspective and in the Process Monitoring perspective. In Client 0, the list of queues shows all Queue objects in all Clients in the system.

To Define the Queue-Specific Settings

  1. Click Add Object on the toolbar.

  2. On the Add Object dialog, select Queue. For more information, see Adding Objects.

  3. Open to the Queue page on the left navigation pane. On this page, you define many of the most relevant properties of the object.

  4. In the Default Settings section, you specify the standard behavior of the Queue.

    • Maximum Slots

      Maximum number of tasks that can run simultaneously in this Queue.

      When an object starts, the Queue slot is reserved before any other settings are checked. Sync objects, available resources, maximum number of parallel tasks allowed, Agent, and so on are considered afterward.

      • Default value: unlimited
      • Allowed values: 1 to 100000

      Important! Entering 0 is not allowed, it can only set by modifying the Queue.

    • Priority

      Objects are processed based on their priority.

      • Default value: 200
      • Allowed values: 0 to 255

      Notes:

      • The priority that is defined in the Queue object is checked before the priority defined in the task. If two tasks have the same Queue priority, the priority that is specified in the task applies.
      • The settings in the Exception section might affect the priority of a task and overrule this definition.
    • Time Zone

      You can assign a Time Zone (TZ) to this Queue. Time Zone objects affect the time calculation. You can select one or use a variable here. For more information, see Inserting Variables/VARA Objects in Objects and Scripts.

  5. In the Exceptions section, specify periods of time in which the default Queue settings do not apply. You can also define specific parameters for those periods.

    1. In From/To specify the period in hours and minutes you do not want the default settings to apply.
    2. Optionally, select a Calendar to determine the days on which the default settings do not apply.
    3. Optionally, select the Calendar Event (if available) that further restricts the days on which the default settings do not apply.
    4. Enter 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.

      Important! The order of the exceptions in the table is relevant. 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.

    Tip: After defining the Maximum Slots and at least one Exception you also have the option to use Consider ERT. For more information, see Considering ERT in Queue Objects.

  6. Save your changes.

Priority Management

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.

Capping Parallel Executions

A Queue has a certain 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. If necessary, you can bypass Queue restrictions later, when objects have been executed but are in a waiting status (Waiting for Queue Slot). In these cases, right-click the task in the Process Monitoring perspective and select Ignore Queue Limit. The task starts immediately.

See also: