Получить из очереди
Peek queue
Last updated
Peek queue
Last updated
Компонент извлекает из очереди Оркестратора элемент в статусе New. В ответе возвращается первый элемент, вошедший в очередь (принцип FIFO). Извлеченный элемент сохраняется в переменную, которая может быть разных типов — строка, объект QueueItem или таблица данных. Выбор переменной осуществляется на ваше усмотрение.
Элемент, который был извлечен из очереди, автоматически переходит из статуса New в статус InProgress. Такой элемент готов для дальнейшей обработки вашим роботом. Другие роботы не cмогут извлечь, изменить или удалить данный элемент.
Для успешного запуска/отладки проекта следует настроить подключение Студии к Оркестратору.
Символ *
в названии указывает на обязательность заполнения свойства. Описание общих свойств см. здесь.
Процесс:
Очередь* [String] — название очереди. Значение чувствительно к регистру и должно совпадать с названием очереди в Оркестраторе. Пример: "QueueName"
.
Статус [LTools.Enterprise.Model.QueueItemStates] — определяет, следует ли извлекать элементы очереди, которые были обработаны с ошибкой, а затем автоматически добавлены в очередь повторно. По умолчанию, если обработка элемента завершилась ошибкой, то система не ставит его в очередь для повторной обработки. Однако если в настройках очереди был включен параметр «На какие ошибки элемент должен ставиться в очередь повторно», то для элементов со статусом Error / BusinessError система автоматически создаст копию и поставит ее в очередь. Копия элемента будет иметь статус New, новый идентификатор и определенное число в поле RetryCount, которое будет указывать, какая по счету это копия оригинального элемента. Вы должны определить, как роботу следует обращаться с этими копиями. Доступные значения:
New
— извлечь элемент в статусе New, который не является копией другого элемента. Значение по умолчанию.
Error
— извлечь элемент, который был создан в качестве первой копии элемента с ошибочным статусом. У такого элемента (копии) в поле RetryCount будет стоять значение 1.
Repeated Error
— извлечь элемент, который был создан в качестве копии при повторной ошибке. У такого элемента (копии) в поле RetryCount будет стоять значение 2 и более.
Any
— извлечь любой элемент в статусе New, вне зависимости от того, является он копией или нет.
Таймаут [Int32] — лимит времени операции (мс). Если по истечении лимита операция не выполнена, робот закончит работу с ошибкой. Пример: 5000
. С версии 1.24.8 таймаут по умолчанию составляет 30000
мс (30 секунд).
Вывод:
Используйте одно из представленных ниже свойств.
Результат [String] — строковая переменная для хранения полученных данных.
Элемент [LTools.Enterprise.Model.QueueItem] — переменная для хранения элемента очереди в виде объекта.
Таблица [DataTable] — переменная для хранения полученных данных в виде таблицы.
В некоторых случаях бывает невозможно извлечь элемент по FIFO. Например, в очередь одновременно обратилось много роботов, или очередь оказалась пустой. Вы можете настроить реакцию системы на описанные события. Реакция выбирается в настройках очереди обмена данными, в следующих параметрах:
Реакция на невозможность извлечения элемента по FIFO;
Кол-во попыток при извлечении элемента по FIFO.
Ознакомьтесь с описанием этих параметров, чтобы использовать подходящий алгоритм обработки очереди по FIFO.
Ниже приведен пример использования элемента в процессе с типом Только код (Pure code):
Изменить статус в очереди — присваивает элементу финальный статус обработки.
Удалить из очереди — удаляет элемент из очереди.