Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 48 Следующий »

В разделе доступно:

Очереди ресурсов необходимы для хранения данных и последовательного доступа к ним. 

Очереди ресурсов применяются в целях:

  • ускорения обработки данных (например, когда параллельно работают 2 и более роботов)
  • обмена данными между роботами, в особенности если роботы исполняются на разных машинах
  • получения данных в определенном порядке

Все данные в очереди представлены в виде ресурсов. Ресурс – это объект, который состоит из:

  • Значения. Это данные различного типа (строка, число, коллекция, путь к папке и т.д.)
  • Параметров. Параметры ресурса – это его дополнительные свойства, необходимые при поиске и работе с ресурсами. Подробнее о параметрах: "Карточка очереди ресурсов"

С очередью ресурсов может работать:

  • Пользователь - через интерфейс Оркестратора
  • Программный робот при помощи действий, которые могут добавлять новые ресурсы в очередь, удалять старые, получать и изменять их значение и параметры. Это действия из группы "Оркестратор", подгруппы "Очереди ресурсов":
    • Создать ресурс
    • Изменить ресурс
    • Получить коллекцию ресурсов
    • Получить ресурс по ID
    • Получить ресурс по условию
    • Разблокировать ресурс
    • Удалить ресурс
    • Завершить обработку ресурса

Очереди ресурсов

Описание таблицы очередей ресурсов

Таблица с ранее созданными очередями ресурсов. 

Название столбца/кнопки

Описание

Столбец "Очередь ресурсов"

Название очереди ресурсов

Является ссылкой (кнопкой), которая открывает карточку выбранной очереди ресурсов

Если создано условие запуска, в котором указана эта очередь, рядом с ее названием отображается иконка:

  • - если условие запуска включено
  • - если условие запуска выключено
Столбец "Количество ресурсов"Текущее количество ресурсов очереди

Кнопка "Удалить"

При нажатии появляется окно с подтверждением удаления:

  • Если на очередь не было настроено условие запуска:
  • Если на очередь было настроено условие запуска:

Кнопка "Обновить"
image-2024-5-29_12-44-37.png

По нажатию происходит обновление записей в таблице

С помощью выпадающего списка «Столбцы» можно выбрать, какие столбцы будут скрыты или отображены, при этом столбец «Очередь ресурсов» отображается всегда.

Создание очереди ресурсов

Для создания новой очереди ресурсов необходимо:

  1. Нажать в разделе "Очереди ресурсов" на кнопку "Создать очередь ресурсов". Откроется окно "Создание очереди ресурсов"

  2. Ввести название новой очереди в поле "Название очереди ресурсов". Название должно быть уникальным.
  3. Нажать на кнопку «Создать» для подтверждения сделанного выбора. Или нажать на кнопку "Отменить", если решили её не создавать.

  4. При нажатии на "Создать", окно будет закрыто, а новая очередь ресурсов будет добавлена в таблицу.

Карточка очереди ресурсов

В карточке "Очередь ресурсов" доступны:

Описание таблицы ресурсов очереди

Таблица содержит список ресурсов очереди с указанием их параметров.

Название столбца\кнопки

Описание

Столбец "Идентификатор"Уникальный идентификатор, который система присваивает каждому ресурсу очереди при его создании
Столбец "Статус"

Показывает статус ресурса

У каждого ресурса может быть 1 из 4-х статусов:

  • Новый
  • В работе
  • Обработан
  • Ошибка

Подробнее про статусы описано ниже

Столбец "Попытки обработки"

Число оставшихся попыток обработки ресурса

Подробнее про попытки обработки описано ниже

Столбец "Теги"

Слова или фразы, дополнительно описывающие ресурс (в основном нужны при поиске ресурса роботом)

Если тегов слишком много, отображается только часть из них. Все остальные видны только по нажатию на кнопку

Столбец "Приоритет"

Приоритет обработки ресурса относительно других ресурсов очереди

Столбец "Блокировки"

В столбце «Блокировка» можно просмотреть, какие текущие блокировки установлены у ресурса

Могут быть следующие значения:

  • Если значение не указано, то ресурс не заблокирован
  • Если указано "На чтение", ресурс заблокирован только на чтение
  • Если указано "На запись", ресурс заблокирован только на запись
  • Если указано "На чтение" и "На запись" одновременно, то ресурс заблокирован и на чтение, и на запись. Ресурс обладает совокупностью особенностей этих блокировок

Если ресурс заблокирован с указанием даты снятия блокировки, рядом с названием соответствующей блокировки будет иконка . При наведении на иконку можно посмотреть дату и время снятия блокировки:

Подробнее про блокировки описано ниже

Столбец "Автор"

Инициатор создания ресурса

Т.к. на данный момент создавать ресурсы могут только роботы, в столбце будет указано:

  • название робота
  • название машины, на которой робот работал в момент создания ресурса
  • название учетной записи, под которой робот работал
Столбец "Дата создания"Дата и время создания ресурса. Отображается с учетом часового пояса пользователя, который работает с данным интерфейсом
Столбец "Редактор"

Инициатор последнего изменения ресурса. Изменить ресурс может и робот, и пользователь, поэтому:

  1. Если инициатор - пользователь, то указано его ФИО
  2. Если инициатор - робот, то указано:
    • название робота
    • название машины, на которой робот работал в момент создания ресурса
    • название учетной записи, под которой робот работал
Столбец "Дата обновления"Дата и время последнего изменения ресурса. Отображается с учетом часового пояса пользователя, который работает с данным интерфейсом

Кнопка "Обновить"
image-2024-5-29_12-44-37.png

По нажатию происходит обновление записей в таблице

Кнопка "Изменить параметры ресурса"

По нажатию открывается окно "Параметры ресурса"

Подробнее об окне описано ниже

Кнопка "Удалить"

При нажатии появляется окно с подтверждением удаления ресурса:

С помощью выпадающего списка «Столбцы» можно выбрать, какие столбцы будут скрыты или отображены, при этом столбец «Идентификатор» отображается всегда.

Условие запуска на основе очереди ресурсов

Можно настроить запуск робота так, чтобы он активировался в зависимости от наличия ресурсов в очереди. Для этого необходимо создать условие запуска на основе очереди ресурсов. Создать такое условие запуска можно:

  • В разделе "Условия запуска" на вкладке "Очереди ресурсов"
  • Из карточки той очереди, на основе которой должно работать условия запуска. Если на данную очередь еще не настроили условие, то в ее карточке будет кнопка "Создать условие запуска " - по нажатию на нее откроется пустая карточка условия запуска в режиме создания. Если на очередь уже настроили условие, то будет отображаться кнопка "Открыть условие запуска" - по нажатию на нее откроется карточка уже существующего условия запуска в режиме чтения

Подробнее про создание, просмотр и изменение такого условия запуска можно узнать в разделе "Условия запуска".

Изменение параметров очереди ресурсов

На данный момент в качестве настроек очереди доступен только параметр "количество попыток обработки ресурсов". Этот параметр ограничивает число попыток обработки одних и тех же ресурсов, если роботы постоянно падают в ошибку при работе с ними. 

Рассмотрим работу этого параметра на примере:

  1. Робот пытается получить значение ресурса, но из-за какой-то проблемы падает в ошибку.
  2. Пользователь перезапускает робота.
  3. Робот снова пытается получить значение ресурса, и снова падает в ошибку. 

Очевидно, просто так проблему не исправить простым перезапуском робота. И при следующих попытках робот все так же будет завершаться с ошибкой, и в итоге не сможет завершить свою работу. Чтобы робот не застревал на проблемном ресурсе, смог его пропустить и взять в работу следующий ресурс, можно ограничить число попыток обработки ресурса.

Ограничение попыток обработки ресурсов работает следующим образом:

  1. Робот не смог обработать ресурс (получить или изменить его) и упал в ошибку.
  2. Количество оставшихся попыток уменьшается на 1.
  3. Пользователь перезапускает робота, но он снова падает в ошибку при работе с тем же самым ресурсом.
  4. Количество оставшихся попыток снова уменьшается на 1.
  5. И так далее. В итоге, когда количество оставшихся попыток станет равным 0, статус ресурса изменится на «Ошибка».
  6. Система скрывает от роботов ресурсы, которые в статусе "Ошибка" или "Обработан". Поэтому при повторном запуске робот уже не найдет этот ресурс в очереди, даже если будет искать по его ID.

Если робот успешно получил или изменил ресурс, то значение оставшихся попыток не меняется. 

Для настройки данного параметра необходимо выполнить шаги:

  1. Нажать на кнопку "Изменить параметры очереди ресурсов". Откроется окно "Параметры очереди ресурсов":
  2. Если максимальное число попыток должно быть строго определенным, нужно активировать чекбокс "Ограничить количество попыток обработки ресурсов". В этом случае будет активно поле "Количество попыток" для указания максимального числа возможных попыток.
  3. Если нет необходимости в ограничении числа попыток обработки ресурсов, нужно отключить чекбокс "Ограничить количество попыток обработки ресурсов".
  4. Нажать на кнопку «Сохранить» для подтверждения внесенных изменений. Или нажать на кнопку "Отменить", если решили не применять изменения.

Указать разное максимальное количество попыток для разных ресурсов нельзя. Это общий параметр для всех ресурсов очереди. Подсчет оставшихся попыток производится отдельно для каждого ресурса. Например, максимальное значение равно 3, робот не смог обработать 1-й ресурс дважды, а 2-й ресурс - один раз. В итоге у 1-го ресурса будет указано количество оставшихся попыток "1 из 3", а у 2-го - "2 из 3".

При изменении максимального числа попыток (в меньшую или большую сторону), оставшееся число попыток у всех ресурсов в статусе "Новый" или "В работе" станет равно новому максимальному значению.

Принципы работы и изменения статусов

Статусы нужны для:

  • Поиска ресурсов роботами. Например, роботы должны искать только ресурсы в статусе "Новый".
  • Определения текущего прогресса в обработке ресурсов - сколько уже обработано, сколько еще в работе, а сколько еще не взято в работу, с какими ресурсами были проблемы.
  • Предотвращения повторной обработки одних и тех же ресурсов. Роботы не смогут получить или изменить ресурсы, которые уже находятся в статусе "Обработан" или "Ошибка".

Основные особенности установки и работы статусов:

  1. При создании ресурса, ему автоматически будет присвоен статус «Новый». Создавать ресурсы на данный момент могут только роботы.
  2. Статус «В работе» устанавливается автоматически только при чтении (получении) или изменении ресурса роботом. Если при создании ресурса сразу были установлены блокировки, это не считается операцией изменения ресурса, поэтому статус будет "Новый", а не в "Работе".
  3. Статус «В работе» не будет установлен автоматически при чтении или изменении ресурса пользователем.
  4. Если робот читал/изменял ресурс, но завершил свою работу, не переведя его в статус "Обработан", то ресурс так и останется в статусе "В работе".
  5. Если ресурс уже в статусе «В работе», другой робот все равно может обратиться к ресурсу для его чтения/изменения.
  6. Роботы не смогут найти в очереди ресурсы, которые в статусе "Обработан". Не сможет найти даже тот робот, который сам же и установил этот статус.
  7. Если количество попыток обработки ресурса станет равным 0, статус ресурса меняется автоматически на «Ошибка». Роботы не смогут найти в очереди ресурсы, которые в статусе "Ошибка".
  8. Пользователь может изменять статус ресурса на любой другой статус в любом порядке. 

Принципы работы блокировок ресурса

Если роботы должны обрабатывать ресурсы из одной и той же очереди, то без дополнительных ограничений они начнут брать в работу одни и те же ресурсы. Чтобы такое не происходило, можно использовать механизм блокировок ресурсов.

Механизм блокировок ресурсов работает следующим образом:

  1. Робот 1 читает 1-й ресурс и при этом сразу его блокирует для других роботов.
  2. 1-й ресурс уже заблокирован Роботом 1, поэтому Робот 2 не сможет его получить и начнет читать 2-й ресурс. И также заблокирует 2-й ресурс для других роботов.
  3. Робот 1 заканчивает работу с 1-м ресурсом и устанавливает ему статус "Обработан".
  4. Робот 1 ищет следующий ресурс. 2-й ресурс уже заблокирован Роботом 2, поэтому Робот 1 не сможет его получить и начнет читать 3-й ресурс, блокируя его для других роботов.
  5. Робот 2 заканчивает работу со 2-м ресурсом и устанавливает ему статус "Обработан".
  6. Робот 2 ищет следующий ресурс:
    • 1-й ресурс уже в статусе "Обработан", поэтому Робот 2 его не найдет
    • 3-й ресурс уже заблокирован Роботом 1, поэтому Робот 1 не сможет его получить
    В итоге Робот 2 начнет читать 4-й ресурс, блокируя его для других роботов.
  7.  И т.д.

Таким образом, два робота последовательно обрабатывают ресурсы очереди, не пересекаясь друг с другом.

Тот, кто устанавливает блокировку, является ее инициатором. Есть несколько правил относительно инициаторов:

  • Если блокировку устанавливает робот, то инициатором является не сам робот, а его экземпляр. Например, дважды запустили одного и того же робота, т.е. 2 его экземпляра. 1-й экземпляр блокирует ресурс, и становится инициатором этой блокировки. 2-й экземпляр уже не сможет управлять этим заблокированным ресурсом, т.к. его инициатором является 1-й экземпляр.
  • Установленная блокировка не накладывает ограничений на инициатора этой блокировки. Инициатор может обрабатывать свой заблокированный ресурс, снимать установленную блокировку.
  • Если инициатор блокировки - робот, на пользователя это не накладывает никакие ограничения: он может читать, изменять ресурс, в том числе менять и установленные блокировки. Роботы такими правами не обладают: если инициатор блокировки кто угодно, но не данный экземпляр робота, то работа с ресурсом для него будет ограничена.

В платформе Robin предусмотрено несколько видов блокировок:

  1. На чтение. Если ресурс заблокирован на чтение, то он будет скрыт системой от всех других роботов, кроме инициатора этой блокировки. Роботы не смогут найти ресурс действиями с поиском по условию, т.к роботы не найдут ресурс, то не смогут ни прочитать, ни изменить его. Однако есть небольшое исключение при попытке поиска ресурса по его точному идентификатору (если он заранее известен):
    • Если выполняется поиск ресурса для его чтения, то робот сможет найти ресурс, но встанет в ожидание снятия блокировки на чтение (максимальное время ожидания настраивается в соответствующем действии робота). Т.е. без снятия блокировки прочитать ресурс все равно нельзя
    • Если выполняется поиск ресурса для его изменения, то робот сможет найти и изменить ресурс, т.к. блокировка на чтение не блокирует изменение ресурса
  2. На запись. Если ресурс заблокирован только на запись, другие роботы (кроме инициатора) смогут найти этот ресурс и получить его значение и параметры. Но изменение ресурса им будет недоступно. Если робот попытается изменить такой ресурс, то робот встанет в ожидание снятия блокировки на запись (максимальное время ожидания настраивается в соответствующем действии робота).
  3. На чтение и на запись. Ресурсы, заблокированные и на запись, и на чтение, обладает совокупностью особенностей этих блокировок. При этом допустимо, что у этих блокировок могут быть разные инициаторы.

Если робот заблокировал ресурсы, и не снял с них блокировку перед завершением своей работы, то система автоматически снимет эти блокировки. Не будут сняты только блокировки, для которых установлена конкретная дата их снятия.

Установка отложенной даты снятия блокировки

В некоторых ситуациях может потребоваться снятие блокировки с ресурсов не сразу после завершения работы робота, а намного позже.

Например, робот получает какие-то значения ежедневно. Но дальнейшая их обработка и применение возможны только к концу месяца из-за отсутствия в данный момент доступа к каким-то требуемым данным или приложениям. В этом случае можно добавить все полученные значения в очередь в виде ресурсов и заблокировать их с установкой даты снятия этой блокировки. До указанной даты ресурс будет заблокирован и ни один робот не возьмёт его в работу. Такая блокировка будет снята автоматически при наступлении указанной даты и времени, после чего роботы смогут начать их обработку. Установить дату разблокировки можно и для блокировки на чтение, и на запись.

Установить такую дату снятия блокировки может как робот, так и пользователь.

Изменение параметров ресурса

Для изменения параметров ресурса необходимо выполнить шаги:

  1. Нажать на кнопку "Изменить параметры ресурса" в строке с нужным ресурсом (в таблице ресурсов). Откроется окно "Параметры ресурса":
  2. Внести необходимые корректировки.
  3. Нажать на кнопку «Сохранить» для подтверждения внесенных изменений. Или нажать на кнопку "Отменить", если решили не применять изменения.

Описание окна "Параметры ресурса"

Название кнопки\поля

Описание

Идентификатор ресурсаНередактируемая строка с идентификатором ресурса, параметры которого открыли

Поле "Статус"

Выпадающий список, в котором можно поменять статус ресурса


Возможные статусы:

  • Новый
  • В работе
  • Обработан
  • Ошибка

Пользователь может изменять статус ресурса на любой другой статус в любом порядке

Поле "Теги"

Слова или фразы, дополнительно описывающие ресурс (в основном нужны при поиске ресурса роботом)

У каждого тега есть кнопка в виде крестика для его удаления

По нажатию на кнопку  добавляется поле для ввода нового тега. Максимально допустимое количество символов при вводе тега - 30

Поле "Приоритет"

Приоритет обработки ресурса относительно других ресурсов очереди

Допустимые значения: целые числа от 0 и выше

Чекбокс "Заблокировать на чтение"

Если чекбокс включен:

  • ресурс будет заблокирован на чтение
  • поле "Дата снятия блокировки на чтение" активно для редактирования
  • справа отображается инициатор блокировки

Подробнее о работе блокировок описано выше

Поле "Дата снятия блокировки на чтение"

Поле для ввода даты и времени, до наступления которых ресурс будет заблокирован на чтение

Если ресурс был заблокирован роботом, а пользователь меняет или убирает дату в этом поле, то инициатором блокировки становится пользователь

Необходимое значение даты/времени можно указать вручную или при помощи формы выбора даты и времени, которая открывается по нажатию на кнопку

Если чекбокс "Заблокировать на чтение" выключен, данное поле недоступно для редактирования

Чекбокс "Заблокировать на запись"

Если чекбокс включен:

  • ресурс будет заблокирован на запись
  • поле "Дата снятия блокировки на запись" активно для редактирования
  • справа отображается инициатор блокировки

Подробнее о работе блокировок описано выше

Поле "Дата снятия блокировки на запись"

Поле для ввода даты и времени, до наступления которых ресурс будет заблокирован на запись

Если ресурс был заблокирован роботом, а пользователь меняет или убирает дату в этом поле, то инициатором блокировки становится пользователь

Необходимое значение даты/времени можно указать вручную или при помощи формы выбора даты и времени, которая открывается по нажатию на кнопку

Если чекбокс "Заблокировать на запись" выключен, данное поле недоступно для редактирования

Кнопка "Сохранить"При нажатии на кнопку окно закрывается, все внесенные изменения сохраняются

Кнопка "Отменить"

При нажатии появляется окно с подтверждением отмены внесенных изменений:

  • Нет меток