Links

Очереди обмена данными

Очереди обмена данными – это структуры данных в БД Оркестратора. С их помощью можно организовать коммуникацию Роботов и Студии при выполнении RPA-проектов.
Очереди могут:
  1. 1.
    Использовать принцип «Первым пришёл – первым обслужен» (FIFO).
  2. 2.
    Вместо FIFO использовать логику «Прочитать элемент может только один Робот».

Работа по FIFO

Для того, чтобы соблюдался принцип FIFO, необходимо правильно сформировать RPA-сценарий. Для извлечения элемента по FIFO используйте компонент Получить из очереди. В этом случае Робот будет получать для обработки первый элемент, вошедший в очередь.

Работа без FIFO

Работа по этому принципу предполагает, что Робот может обратиться к любому незанятому элементу, а не только к первому.
Пример:
  1. 1.
    Обратиться к элементу напрямую по его идентификатору (ID). Для этого используйте в сценарии компонент Получить из очереди по ID. Извлеченный элемент можно сразу занять для обработки роботом (с помощью свойства Занимать).
  2. 2.
    Извлечь из очереди список элементов, используя настроенный фильтр. В том числе с чекаутом: извлечь и сразу занять. Это гарантирует, что другие роботы не смогут прочитать занятые элементы. Данный механизм можно считать аналогом FIFO, только для множественного чтения и с более оптимальным использованием блокировок в БД. Для получения элементов в этом случае используется компонент Получить из очереди по фильтру.

Создание очереди

Для создания очереди:
  1. 1.
    Перейдите в раздел Оркестратора Роботы > Очереди обмена данными (1 и 2 на рисунке).
  2. 2.
    Нажмите кнопку «Добавить очередь» (3):
  3. 3.
    Укажите параметры очереди.

Параметры очереди обмена данными

Параметр
Описание
Время жизни элемента очереди (сек.)
Время, после которого элемент принудительно удаляется из очереди
На какие ошибки элемент должен ставиться в очередь повторно
Возможные значения: Завершилось с ошибкой общего вида (Error) или Завершилось с бизнес-ошибкой (BusinessError). Допускается выбор сразу двух значений. Если ни одно значение не выбрано, то элемент в очередь повторно поставлен не будет
Максимальное количество попыток поставить элемент в очередь повторно
Когда элемент очереди получает статус Завершилось с ошибкой общего вида и/или Завершилось с бизнес-ошибкой, он ставится в очередь по FIFO повторно. После превышения максимального количества попыток элемент в очередь повторно не поставится
Specific JSON Schema
JSON-схема, которой должен соответствовать элемент очереди
Output JSON Schema
JSON-схема, которой должен соответствовать элемент очереди
Analytics JSON Schema
JSON-схема, которой должен соответствовать элемент очереди
Робот может удалять только свои элементы
Робот по ключу сможет удалить только те элементы, которые он сам поместил в очередь
Зашифрована
Определяет, будут ли элементы очереди храниться в БД в зашифрованном виде. Если потом при редактировании очереди снять этот флаг, новые элементы останутся незашифрованными. По умолчанию элементы не шифруются
Публичная
Определяет, каким роботам будет доступна очередь: всем роботам, либо только перечисленным
Физическое удаление
Параметр может отсутствовать - его видимость зависит от настройки конфигурационного файла. Переключатель «Физическое удаление» определяет, как элемент будет удален из очереди - логически или физически. Логическое удаление задано по умолчанию. В этом случае удаленные элементы остаются в БД, а также видны в UI Оркестратора - они подсвечиваются красным. При физическом удалении элементы удаляются из БД и недоступны для просмотра в интерфейсе
Реакция на невозможность извлечения элемента по FIFO
Вернуть null или вернуть ошибку роботу. «Вернуть ошибку» рекомендуется использовать при обработке заранее подготовленной очереди, чтобы отличать от случая, когда очередь пустая – пустая очередь является признаком завершения. Если используется динамическая очередь (одновременно работают писатели и читатели), рекомендуется использовать «Вернуть null» – признак завершения внешний, например, достижение максимального количества итераций, или получение внешнего сигнала
Кол-во попыток при извлечении элемента по FIFO
Применяется, если в качестве реакции на невозможность извлечения элемента по FIFO выбрано вернуть ошибку. Под нагрузкой ведет к увеличению времени извлечения элемента очереди, может негативно влиять на клиентские таймауты на стороне робота

Элементы очереди

О том, как наполнить очередь элементами, см. раздел Элементы очереди.