История страницы
...
Очередь роботов - это список неудачных запусков роботов (их не удалось начать или прервались из-за ошибки), которые система автоматически попытается выполнить еще раз в порядке попадания запусков в этот список. В текущем релизе отсутствует интерфейс для просмотра и управления запусками в очереди. При этом запуск ≠ роботу. Можно запустить несколько раз одного и того же робота - это будут разные запуски. Подробнее Раздел "Очередь роботов".
Причины, из-за которых запуск робота будет отправлен в очередь:
- В очереди уже есть запуск, который должен быть выполнен на той же учетной записи машины, которую пользователь выбирает для другого запуска. Это происходит, потому что данная учетная запись уже "забронирована" другим запуском, который пытались выполнить еще раньше
- Если на выбранной учетной записи машины уже выполняется максимально допустимое число запусков. Такой лимит запусков можно настроить через конфигурационный файл системы при ее развертывании. Параметр общий для всех машин, т.е. нельзя настроить разные лимиты для разных машин. При этом процессы (проекты роботов), запущенные через ROBIN Studio, не учитываются в общем количестве текущих запусков
- На учетной записи машины нельзя запускать более одного робота с отметкой . Если производится запуск робота с , но на выбранной учетной записи же работает робот с такой же отметкой, то рассматриваемый запуск будет отправлен в очередь
- Для выбранной учетной записи необходимо поднимать RDP-сессию, но системе не удалось ее поднять. Соответственно, далее начать запуск также не получится, и он отправляется в очередь
- Системе исполнения, установленная на выбранной учетной записи машины, не удалось начать запуск (к этому моменту все вышеперечисленные проверки уже пройдены успешно и запуску не мешают)
- Возникла ошибка уже при выполнении запущенного робота
Если робот завершил свою работу успешно или был остановлен пользователем, система не добавляет такой запуск в очередь
События, при которых система пытается еще раз повторить запуски, попавшие в очередь:
- Какой-либо выполняющийся робот завершил свою работу, т.е. на одной из учетных записей машин освободилось место для еще одного запуска
- В карточке учетной записи машины добавили или обновили учетные данные
- Одна из учетных записей машин стала активной, и при этом количество выполняющихся на ней запусков не > установленного лимита запусков
Помимо лимита выполняющихся запусков, в конфигурационном файле системы настраивается еще 2 параметра, влияющих на работу очереди роботов:
- Максимальное количество перезапусков. Некоторые запуски могут попадать в очередь бесконечно, например, если проблема в самом роботе, и требуется его изменение через ROBIN Studio. Чтобы очередь не была забита такими запусками, после попадания запуска в очередь система попытается его повторно выполнить только установленное количество раз. Когда количество выполненных попыток станет = числу, установленному в конфигурационном файле, система удаляет этот запуск из очереди и далее его не контролирует.
- Тайм-аут. Это время, которое должно пройти с момента попадания запуска в очередь (в первый раз или при неудачной попытке перезапуска), прежде чем система попытается еще раз выполнить этот запуск. Пример работы этого параметра:
- Робот упал в ошибку, и система отправила этот запуск в очередь.
- Возникает событие, при котором система повторяет запуски в очереди.
- С момента попадания запуска в очередь еще не прошло время = значению из конфигурационного файла. Поэтому система пропускает этот запуск, оставляя его в очереди. Количество выполненных перезапусков для этого запуска остается неизменным.
- Спустя какое-то время снова возникает событие, запускающее проверку очереди
- С момента попадания запуска в очередь уже прошло время = значению из конфигурационного файла. В этот раз система не пропускает этот запуск и пытается начать его выполнение. Вне зависимости от результата (удалось начать запуск или нет), количество выполненных перезапусков для этого запуска увеличивается на 1.
Оба параметра общие для всех запускаемых роботов.
Работа с RDP-сессиями
В конфигурационных файлах платформы есть несколько параметров, связанных с RDP-сессиями для запуска роботов, которые будут полезны пользователю:
- "rdp.isEnable":
- Если значение "false", система не будет предпринимать попытки запуска RDP-сессий на каких-либо машинах, даже если это необходимо для запуска робота
- Если "true", система будет запускать RDP-сессию на учетной записи машины, если есть такая необходимость
- "rdp.start.timer.duration" - время, в течение которого Оркестратор будет ожидать активации RDP-сессии и успешного запуска системы исполнения роботов. Время задается в миллисекундах. Если время вышло, но Оркестратор не получил нужный ответ, запуск робота на этой учетной записи будет отменен. Такое ограничение времени необходимо для случаев, когда из-за неизвестных ошибок Оркестратору не поступает обратно ответ, и в итоге запуск робота зависает, не завершаясь.
"rdp.stop.timer.duration" - время, в течение которого Оркестратор будет ожидать появления новых запросов о запуске робота на данной учетной записи машины, прежде чем завершить на ней RDP-сессию. Время задается в миллисекундах. Работает параметр следующим образом:
- На учетной записи завершился последний робот. Теперь на ней ничего не выполняется.
- Оркестратор активирует счетчик времени.
- Если за установленное время на этой учетной записи не будет запущен ни один робот, RDP-сессия будет завершена за ее ненадобностью. Если поступит запрос на запуск робота, Оркестратор отключит счетчик и не станет отключать RDP-сессию - оставит для нового запускаемого робота.
Этот параметр полезен, если между окончанием одного робота и началом другого проходит мало времени - можно не можно не тратить время на лишнее завершение RDP-сессии и ее повторный запуск для второго робота, а просто использовать ранее запущенную сессию.
- "rdp.screen.resolution" - разрешение экрана, которое будет установлено на учетной записи машины при подключении на ней RDP-сессии.
Все параметры можно настроить в файле "rms2.properties", расположенном на серверной части платформы.