Назначение раздела
Очередь ресурсов - это инструмент для хранения и управления данными (ресурсами), которые обрабатываются программными роботами.
Основные цели использования очередей:
Ускорение обработки данных. Несколько роботов могут одновременно брать и обрабатывать разные ресурсы из одной очереди.
- Обмен данными. Роботы могут обмениваться друг с другом значениями через очередь ресурсов. Особенно актуально, если роботы работают на разных машинах.
Упорядочивание обработки данных. Ресурсам можно назначать приоритеты, чтобы роботы могли выбрать наиболее важные задачи (ресурсы для обработки).
Контроль и мониторинг. Через интерфейс платформы пользователи видят статус обработки ресурсов и могут управлять ими, тем самым влияя на работу роботов (например, блокировать ресурсы, которые сейчас не стоит брать в работу).
Ресурс очереди – это объект, который состоит из:
- Значения. Это данные определенного типа (строка, число, коллекция, путь к папке и т.д.).
- Параметров. Параметры ресурса – это его дополнительные свойства, необходимые роботу для поиска и контроля обработки ресурса.
Пользователи работают с очередями ресурсов через интерфейс платформы - раздел "Очередь ресурсов". А роботы взаимодействуют с очередями при помощи действий, которые могут добавлять новые ресурсы в очередь, удалять старые, получать и изменять их значение и параметры. Эти действия расположены в группе действий "Оркестратор", в подгруппе "Очереди ресурсов".
Раздел "Очереди ресурсов" предназначен для:
- просмотра списка очередей ресурсов
- создания новых очередей ресурсов
- удаления очередей ресурсов
- работы с карточкой очереди:
- просмотра и изменения параметров очереди
- просмотра ресурсов в очереди
- просмотра и изменения параметров ресурсов
Также через карточку очереди ресурсов можно создать условие запуска на основе выбранной очереди.
Таблица очередей ресурсов
В таблице отображаются все очереди ресурсов, которые были созданы в текущем тенанте.
С помощью выпадающего списка "Столбцы" можно выбрать, какие столбцы будут скрыты или отображены, при этом столбец "Очередь ресурсов" отображается всегда.
Столбец/кнопка | Описание |
---|---|
Столбец "Очередь ресурсов" | Название очереди ресурсов. Является ссылкой, которая открывает карточку выбранной очереди (подробнее о карточке см. ниже). Если создано условие запуска, в котором указана эта очередь, то в столбце будет отображаться иконка:
|
Столбец "Количество ресурсов" | Текущее количество ресурсов в очереди. |
Столбец "Дата создания" | Дата и время, когда была создана очередь ресурсов. |
Столбец "Автор" | ФИО пользователя, который создал очередь ресурсов. |
Кнопка "Удалить" | При нажатии удаляется очередь ресурсов. Если удаленная очередь ранее была указана в каком-то условии запуска робота, то это условие запуска будет автоматически выключено. |
Кнопка | По нажатию происходит обновление записей в таблице. |
Создание очереди ресурсов
Для создания очереди ресурсов:
Нажмите на кнопку "Создать очередь ресурсов". Откроется окно:
В поле "Название очереди ресурсов" введите название для новой очереди. Дубли в названиях очередей запрещены.
Нажмите на кнопку «Создать». Окно закроется, новая очередь ресурсов будет создана.
Карточка очереди ресурсов
Чтобы открыть карточку очереди ресурсов нажмите в таблице раздела на название нужной очереди.
Изменение параметров очереди ресурсов
Для изменения параметров очереди ресурсов нажмите на кнопку "Изменить параметры очереди ресурсов" и укажите нужные значения в открывшемся окне:
На данный момент в окне можно настроить только один параметр - ограничение количества попыток обработки ресурсов:
- Этот параметр ограничивает число попыток обработки одних и тех же ресурсов, если роботы постоянно падают в ошибку при работе с ними.
Пример
- Робот пытается получить/изменить ресурс, но появляется ошибка.
- Пользователь перезапускает робота.
- Робот снова пытается получить/изменить ресурс, и снова появляется ошибка.
Очевидно, проблему не исправить простым перезапуском робота. При следующих попытках работы с ресурсом робот все так же будет завершаться с ошибкой, и в итоге не сможет завершить свою работу. Чтобы робот не застревал на проблемном ресурсе, смог его пропустить и взять в работу следующий ресурс, можно ограничить число попыток обработки ресурса.
- Каждый раз, когда возникает у робота возникает ошибка при работе с ресурсом, происходит уменьшение оставшихся попыток обработки этого ресурса на 1. Как только количество попыток станет равно 0, статус ресурса меняется на "Ошибка". Роботы не смогут больше найти и взять в работу ресурс с таким статусом, даже если будут искать по точному идентификатору ресурса.
- Количество оставшихся попыток не уменьшается, когда робот успешно получил или изменил ресурс.
- Установленное максимальное количество попыток одинаково для всех ресурсов в очереди, но уменьшение оставшихся попыток происходит для каждого ресурса индивидуально.
- Уменьшение оставшихся попыток происходит вне зависимости от того, у какого робота возникла проблема с ресурсом - у разных или одного и того же.
Пример
- Робот1 пытается получить/изменить ресурс, но появляется ошибка.
- Система уменьшает у ресурса количество оставшихся попыток на 1.
- Робот2 пытается получить/изменить ресурс, но у него также появляется ошибка.
- Система уменьшает у ресурса количество оставшихся попыток на 1.
- Значение параметра распространяется только на ресурсы той очереди, в которой настроен этот параметр. В разных очередях может быть разное значение этого параметра.
- При изменении максимального числа попыток (в меньшую или большую сторону), оставшееся число попыток у всех ресурсов со статусом "Новый" или "В работе" станет равно новому максимальному значению.
Для ограничения количества попыток включите чекбокс "Ограничить количество попыток обработки ресурсов" и укажите в поле "Количество попыток" максимальное количество попыток для ресурсов этой очереди. Если у ресурсов должно быть неограниченное количество попыток, то отключите чекбокс.
Условие запуска робота на основе очереди ресурсов
Можно настроить запуск робота так, чтобы он активировался в зависимости от наличия ресурсов в очереди. Для этого необходимо создать условие запуска на основе очереди ресурсов.
Создать такое условие запуска можно:
- В разделе "Условия запуска" на вкладке "Очереди ресурсов".
- Из карточки той очереди, на основе которой должно работать условие запуска.
Если на очередь еще не настроили условие запуска, то в ее карточке отображается кнопка "Создать условие запуска" - по нажатию открывается пустая карточка для создания условия запуска. Если на очередь уже настроили условие, то в ее карточке отображается кнопка "Открыть условие запуска" - по нажатию открывается карточка уже существующего условия запуска в режиме просмотра параметров, которые при необходимости можно поменять.
Подробнее про карточку условия запуска и процесс ее создания, просмотра и изменения см. в разделе "Условия запуска" на вкладке "Очереди ресурсов".
Таблица ресурсов
В таблице отображаются все ресурсов, которые были созданы в данной очереди.
С помощью выпадающего списка "Столбцы" можно выбрать, какие столбцы будут скрыты или отображены, при этом столбец "Идентификатор" отображается всегда.
Столбец\кнопка | Описание |
---|---|
Столбец "Идентификатор" | Уникальный идентификатор, который система присваивает каждому ресурсу очереди при его создании. |
Столбец "Статус" | Статус обработки ресурса. У каждого ресурса может быть 1 из 4-х статусов:
|
Столбец "Попытки обработки" | Число оставшихся попыток обработки ресурса. |
Столбец "Теги" | Слова или фразы, которые являются дополнительным описанием ресурса. В основном нужны:
Если тегов слишком много, отображается только часть из них. Все остальные отображаются только по нажатию на кнопку . |
Столбец "Приоритет" | Приоритет обработки ресурса относительно других ресурсов очереди. Можно настроить робота так, чтобы он обрабатывал ресурсы с более высоким приоритетом раньше остальных. |
Столбец "Блокировки" | Тип блокировки, который установлен у ресурса. Могут быть следующие значения:
Если ресурс заблокирован с указанием даты снятия блокировки, то рядом с названием соответствующей блокировки будет иконка . При наведении на иконку можно посмотреть дату и время снятия блокировки: |
Столбец "Автор" | Инициатор создания ресурса. Т.к. на данный момент создавать ресурсы могут только роботы, в столбце всегда будет указано:
|
Столбец "Дата создания" | Дата и время создания ресурса. |
Столбец "Редактор" | Инициатор последнего изменения ресурса. Изменить ресурс может и робот, и пользователь, поэтому:
|
Столбец "Дата обновления" | Дата и время последнего изменения ресурса. |
Кнопка | По нажатию происходит обновление записей в таблице. |
Кнопка "Изменить параметры ресурса" | Кнопка для изменения параметров ресурса (см. подробнее ниже). |
Кнопка "Удалить" | При нажатии удаляется ресурс. |
Статусы ресурсов
Статусы нужны для:
- Поиска ресурсов роботами. Например, если роботы должны брать в работу ресурсы в статусе "Новый".
- Определения текущего прогресса в обработке ресурсов - сколько уже обработано, сколько еще в работе, а сколько еще не взято в работу, с какими ресурсами были проблемы.
- Предотвращения повторной обработки одних и тех же ресурсов. Роботы не смогут получить или изменить ресурсы, которые уже находятся в статусе "Обработан" или "Ошибка".
Особенности работы статусов:
- При создании ресурса, ему автоматически присваивается статус «Новый». Создавать ресурсы на данный момент могут только роботы.
- Статус «В работе»:
- устанавливается автоматически при чтении (получении) или изменении ресурса роботом.
- если при выполнения операции создания ресурс сразу заблокировали, то это не считается операцией изменения ресурса, поэтому статус будет "Новый", а не в "Работе".
- не будет установлен автоматически, если ресурс просматривает или изменяет пользователь.
- не меняется автоматически на статус "Обработан" только потому, что завершился робот, который читал или изменял ресурс. Для такой смены статуса робот должен выполнить соответствующее действие.
- если ресурс уже в статусе «В работе» (например, установился при чтении ресурса роботом), другой робот все равно может обратиться к ресурсу для его чтения или изменения.
- Система скрывает от роботов ресурсы, которые в статусе "Обработан". Роботы не смогут найти такие ресурсы в очереди, даже если будут искать по их точному идентификатору. Такой ресурс не сможет найти даже тот робот, который сам же и установил этот статус.
Роботы могут установить у ресурса статус "Обработан", выполнив соответствующее действие. - Если оставшееся количество попыток обработки ресурса станет равным 0, статус ресурса автоматически поменяется на «Ошибка».
Система скрывает от роботов ресурсы, которые в этом статусе. Роботы не смогут найти такие ресурсы в очереди, даже если будут искать по их точному идентификатору. - Пользователь может изменять текущий статус ресурса на любой другой статус в любом порядке через окно параметров ресурса.
Блокировка ресурсов
Если роботы должны обрабатывать ресурсы из одной и той же очереди, то без дополнительных ограничений они начнут брать в работу одни и те же ресурсы. Чтобы такое не происходило, можно использовать механизм блокировки ресурсов.
Механизм блокировок ресурсов работает следующим образом:
- Робот 1 читает 1-й ресурс и при этом сразу его блокирует для других роботов.
- 1-й ресурс уже заблокирован Роботом 1, поэтому Робот 2 не сможет его получить и начнет читать 2-й ресурс. И также заблокирует 2-й ресурс для других роботов.
- Робот 1 заканчивает работу с 1-м ресурсом и устанавливает ему статус "Обработан".
- Робот 1 ищет следующий ресурс. 2-й ресурс уже заблокирован Роботом 2, поэтому Робот 1 не сможет его получить и начнет читать 3-й ресурс, блокируя его для других роботов.
- Робот 2 заканчивает работу со 2-м ресурсом и устанавливает ему статус "Обработан".
- Робот 2 ищет следующий ресурс:
- 1-й ресурс уже в статусе "Обработан", поэтому Робот 2 его не найдет
- 3-й ресурс уже заблокирован Роботом 1, поэтому Робот 1 не сможет его получить
- И т.д.
Таким образом, два робота могут параллельно обрабатывать ресурсы очереди, не пересекаясь друг с другом.
Тот, кто устанавливает блокировку, является ее инициатором:
- Если блокировку устанавливает робот, то инициатором является не сам робот, а его экземпляр.
Пример
Дважды запустили одного и того же робота, т.е. 2 его экземпляра. 1-й экземпляр блокирует ресурс, и становится инициатором этой блокировки. 2-й экземпляр уже не сможет управлять этим заблокированным ресурсом, т.к. его инициатором является 1-й экземпляр.
- Установленная блокировка не накладывает ограничений на инициатора этой блокировки. Инициатор может обрабатывать свой заблокированный ресурс, снимать установленную блокировку.
- Если инициатор блокировки - робот, на пользователя это не накладывает никакие ограничения. Пользователь может читать и изменять ресурс, в том числе менять и установленные блокировки.
Роботы такими правами не обладают: если инициатор блокировки кто угодно, но не данный экземпляр робота, то работа с ресурсом для него будет ограничена.
В платформе предусмотрено несколько видов блокировок:
- На чтение. Если ресурс заблокирован на чтение, то у всех роботов (кроме инициатора блокировки):
- при поиске ресурса по заданным условиям, ресурс найден не будет. А значит, роботы не смогут ни прочитать, ни изменить такой ресурс.
- при поиске ресурса по его идентификатору (если он заранее известен роботу):
- если выполняется действие для получения (чтения) ресурса, то робот сможет найти ресурс, но встанет в ожидание снятия блокировки на чтение (максимальное время ожидания настраивается в действии робота). Т.е. без снятия блокировки прочитать ресурс все равно нельзя.
- если выполняется действие для изменения ресурса, то робот сможет найти и изменить ресурс, т.к. блокировка на чтение не блокирует изменение ресурса. Действие по изменению ресурса не возвращает значение ресурса, т.е. не "читает" ресурс, а значит его успешное выполнение не противоречит установленной блокировке.
- На запись. Если ресурс заблокирован на запись, то роботы смогут найти этот ресурс и получить его значение и параметры (т.е. "прочитать"). Но всем роботам, кроме инициатора блокировки, изменение ресурса будет недоступно. Если робот попытается изменить такой ресурс, то встанет в ожидание снятия блокировки на запись (максимальное время ожидания настраивается в действии робота).
- На чтение и на запись. Ресурсы, заблокированные и на запись, и на чтение, обладает совокупностью особенностей этих блокировок.
При этом допустимо, что у этих блокировок могут быть разные инициаторы. Например, блокировку на чтение установил Робот1, а блокировку на запись - Робот2.
Если робот заблокировал ресурсы, и не снял с них блокировку перед завершением своей работы, то система автоматически снимет эти блокировки. Не будут сняты только блокировки, для которых установлена дата снятия блокировки
Установка отложенной даты снятия блокировки
В некоторых ситуациях может потребоваться снятие блокировки с ресурсов не сразу после завершения работы робота, а позже.
Например, робот получает какие-то значения ежедневно. Но дальнейшая их обработка и применение возможны только к концу месяца из-за отсутствия в данный момент доступа к каким-то требуемым данным или приложениям. В этом случае можно добавить все полученные значения в очередь в виде ресурсов и заблокировать их с установкой даты снятия этой блокировки. До указанной даты ресурс будет заблокирован и ни один робот не сможет прочитать и/или изменить ресурс в зависимости от установленной блокировки. Такая блокировка будет снята автоматически при наступлении указанной даты и времени.
Установить дату разблокировки ресурса можно и для блокировки на чтение, и для блокировки на запись.
Установить дату снятия блокировки может как робот, так и пользователь.
Изменение параметров ресурса
Для изменения параметров ресурса нажмите на кнопку «Изменить параметры ресурса» в строке с ресурсом и укажите нужные значения в открывшемся окне:
Параметры в окне "Параметры ресурса"
Параметр | Описание |
---|---|
Идентификатор ресурса | Нередактируемая строка с идентификатором ресурса, параметры которого открыли. |
Поле "Статус" | Параметр для выбора статуса ресурса. Пользователь может изменять статус ресурса на любой другой статус в любом порядке. |
Поле "Теги" | Слова или фразы, которые являются дополнительным описанием ресурса. В основном нужны:
По нажатию на кнопку ввода значения нового тега. Максимально допустимое количество символов при вводе тега - 30. |
Поле "Приоритет" | Приоритет обработки ресурса относительно других ресурсов очереди. Можно настроить робота так, чтобы он обрабатывал ресурсы с более высоким приоритетом раньше остальных. |
Чекбокс "Заблокировать на чтение" | Если чекбокс включен, то ресурс будет заблокирован на чтение. При этом справа от чекбокса будет отображаться текущий инициатор блокировки:
|
Поле "Дата снятия блокировки на чтение" | Поле для ввода даты и времени, при наступлении которых блокировка на чтение будет снята автоматически. Если чекбокс "Заблокировать на чтение" выключен, то данное поле недоступно для редактирования. Если ресурс был заблокирован роботом, а пользователь меняет или убирает дату в этом поле, то инициатором блокировки становится пользователь. Дату и время можно ввести вручную или при помощи календаря, который открывается при нажатии на поле: |
Чекбокс "Заблокировать на запись" | Если чекбокс включен, то ресурс будет заблокирован на запись (изменение). При этом справа от чекбокса будет отображаться текущий инициатор блокировки:
|
Поле "Дата снятия блокировки на запись" | Поле для ввода даты и времени, при наступлении которых блокировка на запись будет снята автоматически. Если чекбокс "Заблокировать на запись" выключен, то данное поле недоступно для редактирования. Если ресурс был заблокирован роботом, а пользователь меняет или убирает дату в этом поле, то инициатором блокировки становится пользователь. Дату и время можно ввести вручную или при помощи календаря, который открывается при нажатии на поле: |