Получить из очереди

Peek queue

Компонент извлекает из очереди Оркестратора элемент в статусе New. В ответе возвращается первый элемент, вошедший в очередь (принцип FIFO). Извлеченный элемент сохраняется в переменную. Переменная может быть разных типов — строка, объект LTools.Enterprise.Model.QueueItem или DataTable. Выбор переменной осуществляется на ваше усмотрение.

Элемент, который был извлечен из очереди, автоматически переходит из статуса New в статус InProgress. Такой элемент готов для дальнейшей обработки вашим роботом. Другие роботы не cмогут извлечь, изменить или удалить данный элемент.

Для успешного запуска/отладки проекта следует настроить подключение Студии к Оркестратору.

Свойства

Символ * в названии указывает на обязательность заполнения свойства. Описание общих свойств см. здесь.

Процесс:

  1. Очередь* [String] — название очереди. Значение чувствительно к регистру и должно совпадать с названием очереди в Оркестраторе. Пример: "QueueName".

  2. Статус [LTools.Enterprise.Model.QueueItemStates] — определяет, следует ли извлекать элементы очереди, которые были обработаны с ошибкой и затем автоматически добавлены в очередь повторно. По умолчанию, если обработка элемента завершилась ошибкой, то система не ставит его в очередь для повторной обработки. Однако если в настройках очереди был включен параметр «На какие ошибки элемент должен ставиться в очередь повторно», то для элементов со статусом Error/BusinessError система автоматически создаст копию и поставит ее в очередь. Копия элемента будет иметь статус New, новый идентификатор и определенное число в поле RetryCount, которое будет указывать, какая по счету это копия оригинального элемента. Вы должны определить, как роботу следует обращаться с этими копиями. Доступные значения:

    • New — извлечь элемент в статусе New, который не является копией другого элемента. Значение по умолчанию.

    • Error — извлечь элемент, который был создан в качестве первой копии элемента с ошибочным статусом. У такого элемента (копии) в поле RetryCount будет стоять значение 1.

    • Repeated Error — извлечь элемент, который был создан в качестве копии при повторной ошибке. У такого элемента (копии) в поле RetryCount будет стоять значение 2 и более.

    • Any — извлечь любой элемент в статусе New, вне зависимости от того, является он копией или нет.

  3. Таймаут [Int32] — лимит времени операции (мс). Если по истечении лимита операция не выполнена, робот закончит работу с ошибкой. Пример: 5000.

Вывод:

🔹 Примечание. Используется только одно из свойств.

  1. Результат [String] — строковая переменная для хранения полученных данных.

  2. Элемент [LTools.Enterprise.Model.QueueItem] — переменная для хранения элемента очереди в виде объекта.

  3. Таблица [DataTable] — переменная для хранения полученных данных в виде таблицы.

Реакция на невозможность извлечения элемента по FIFO

В некоторых случаях бывает невозможно извлечь элемент по FIFO. Например, в очередь одновременно обратилось много роботов, или очередь оказалась пустой. Вы можете настроить реакцию системы на описанные события. Реакция выбирается в настройках очереди обмена данными, в следующих параметрах:

  • Реакция на невозможность извлечения элемента по FIFO;

  • Кол-во попыток при извлечении элемента по FIFO.

Ознакомьтесь с описанием этих параметров, чтобы использовать подходящий алгоритм обработки очереди по FIFO.

Только код

Ниже приведен пример использования элемента в процессе с типом Только код (Pure code):

object ret = LTools.Enterprise.OrchestratorApp.PeekQueue(wf, "queue");

Дополнительно

Last updated