Ожидать сообщения из очереди
Eng: Wait queue
Компонент ожидает появление нового элемента в очереди обмена данных. При появлении элемента, робот извлечет его из очереди Оркестратора и сохранит в переменную. Извлеченный элемент перейдет из состояния New в InProgress. Это означает, что он будет доступен роботу для дальнейшей обработки в рамках сценария автоматизации.
Типы возвращаемых данных:
- Объект
QueueItem
(полная метаинформация) DataTable
(табличное представление)String
(сериализованные данные)
Если во время выполнения компонента очередь окажется пустой, то робот будет опрашивать очередь в течение времени, заданного в свойстве Time. Это отличает данный компонент от других способов извлечения элемента, например, от компонента Получить из очереди.
Свойства
Символ *
в названии свойства указывает на обязательность заполнения. Описание общих свойств см. в разделе Свойства элемента.
Переменная, в которую будет записан элемент, может быть в виде объекта, таблицы или строки. Тип данных переменной определяется только вашим выбором.
Свойство | Тип | Описание |
---|---|---|
Процесс: | ||
Очередь* | String | Название очереди в Оркестраторе. Пример: "PrimoTestQueue" |
Период* | Int32 | Период опроса очереди в миллисекундах. По умолчанию 1000 . *С версии 1.24.8 таймаут по умолчанию составляет 30000 мс.(30 секунд). Свойство переименовано Time → Период |
Вывод: | ||
Таблица | DataTable | Название переменной, которая будет хранить полученный элемент очереди в виде таблицы |
Результат | String | Название переменной, которая будет хранить полученный элемент очереди в виде строки |
Элемент | LTools.Enterprise.Model.QueueItem | Название переменной, которая будет хранить полученный элемент очереди в виде объекта |
Только код
Пример использования элемента в процессе с типом Только код (Pure code):
C#
//Свойства элемента:
//wf: [LTools.Common.Model.WorkflowData] ссылка на вызывающий алгоритм
//queue - Очередь: [String] Имя очереди
//robot - Статус элемента
object ret = LTools.Enterprise.OrchestratorApp.PeekQueue(wf, "PrimoTestQueue", LTools.Enterprise.Model.QueueItemStates.Any);
//Вывод в лог
LTools.Workflow.PrimoApp.AddToLog(wf, "Полученное значение из очереди - " + ret.ToString(), LTools.Enums.LogMessageType.Info);
Дополнительно
- Изменить статус в очереди — присваивает элементу финальный статус обработки.
- Удалить из очереди — удаляет элемент из очереди.