Что встроено в современные компьютеры на основе триггеров

Обновлено: 21.11.2024

Триггеры позволяют выполнять задания заранее запланированным образом, через равные промежутки времени (триггеры по времени) или всякий раз, когда в ваши очереди добавляются новые элементы (триггеры очередей). На странице "Триггеры" можно создавать новые триггеры, управлять существующими, а также мгновенно запускать задание для любого существующего триггера.

🚧

Важно!

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

По умолчанию триггер отключается автоматически после 10 неудачных запусков, если он не был успешно запущен в последний день. Это значение можно настроить с помощью параметра Triggers.DisableWhenFailedCount.

Подробнее о заданиях и их выполнении.

Позволяют запланировать периодическое время запуска задания. На этом уровне также можно управлять входными значениями для процессов, поддерживающих входные и выходные параметры.

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

Динамическое размещение

Распределить динамически

Определить, сколько раз процесс должен выполняться в соответствии с заданным триггером. Эта опция позволяет вам максимально использовать свои ресурсы. Как только робот становится доступным, он выполняет указанный процесс в соответствии с предоставленным триггером.

Аккаунт

Процесс выполняется под определенной учетной записью. Только указание учетной записи приводит к тому, что Orchestrator динамически выделяет компьютер. Указание и учетной записи, и машины означает, что задание запускается именно на этой паре учетная запись-машина.

Машина

Процесс выполняется на одном из хост-компьютеров, подключенных к выбранному шаблону компьютера. Только указание компьютера приводит к тому, что Orchestrator динамически выделяет учетную запись. Указание и учетной записи, и машины означает, что задание запускается именно на этой паре учетная запись-машина.

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

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

Этот процесс может выполняться для нескольких конкретных пар аккаунт-компьютер. Узнайте больше о сопоставлении аккаунта и компьютера.

📘

Важно!

Если по какой-либо причине соединение с базой данных SQL теряется, триггеры, которые должны были сработать в этот момент, срабатывают и генерируется оповещение с уровнем Error.

  1. Если вы задали несколько триггеров для одного и того же робота и время их выполнения перекрывается хотя бы один раз, задания помещаются в очередь в состоянии ожидания. Робот выполняет поставленные в очередь задания в хронологическом порядке.
  2. Если один и тот же процесс запланирован на одном и том же роботе несколько раз и время их выполнения перекрывается, в очередь ставится только один процесс в состоянии ожидания. Например, если процесс A на роботе X запланирован на 11:20, 11:21 и 11:25, поведение будет следующим:
    • в 11:20 выполняется первый процесс.
    • Если первое выполнение завершается до срабатывания второго триггера:
      • Обрабатывается второй триггер.
        • Если это выполнение завершается до триггера 11:25, последний также выполняется.
        • Если выполнение триггера 11:21 не завершается до триггера 11:25, последний добавляется в очередь в состоянии ожидания.
    • Если первое выполнение НЕ завершается до срабатывания второго триггера:
      • Триггер 11:21 помещается в очередь в состоянии ожидания.
        • Если выполнение триггера 11:21 завершается до запуска триггера 11:25, последний также выполняется.
        • Если выполнение триггера 11:21 начинается, но не заканчивается до триггера 11:25, последний триггер помещается в очередь в состоянии ожидания.
        • Если триггер 11:21 все еще находится в состоянии ожидания, когда должен запуститься триггер 11:25, последний больше не выполняется или не добавляется в очередь, и отображается следующее сообщение: У роботов уже есть ожидающие задания для этого процесса.
  3. Если вы хотите выполнить процесс несколько раз на любых доступных роботах, у вас есть возможность сделать это с помощью параметра "Распределить динамически" на вкладке "Выполнить цель". Задания ставятся в очередь в состоянии ожидания в соответствующей среде, и каждый раз, когда робот становится доступным, выполняется первое задание в очереди. Таким образом, робот никогда не будет доступен, пока есть незавершенные задания.
    Допустим, вы хотите запустить процесс 7 раз. В момент срабатывания триггера к рабочей нагрузке среды добавляются 7 ожидающих заданий, не назначаемых конкретным роботам. Возможны несколько сценариев:
    • На момент срабатывания доступно как минимум 7 роботов — одному роботу назначается одно задание, так что все задания выполняются за один раз.
    • На момент срабатывания доступно менее 7 роботов, скажем, 4. Каждому из 4 роботов назначается одно задание. Если становится доступным новый робот или один из 4, он берет на себя другое задание из оставшихся 3. Это происходит для каждого доступного робота до тех пор, пока не останется заданий.
  4. Если два или более триггера запускают один и тот же процесс, каждый разное количество раз, при следующем триггере максимальное количество заданий между ними добавляется к рабочей нагрузке среды; они не накапливаются. Представьте себе следующую ситуацию: триггер A запускает процесс 13 раз, а триггер B запускает его 20 раз. Возможны следующие сценарии:
    • A и B запускаются одновременно — 20 заданий (максимум от 13 до 20) ставятся в очередь в рабочей нагрузке среды.
    • Сначала срабатывает B — 20 заданий поставлены в очередь.
      • Если между временем срабатывания B и временем срабатывания A было выполнено 7 или более заданий, скажем, 9 (осталось 11 ожидающих заданий), то 13 заданий (максимум между 11 и 13) ставятся в очередь в рабочей нагрузке среды.< /li>
      • Если между временем срабатывания B и временем срабатывания A было выполнено менее 7 заданий, скажем, 5 (осталось 15 ожидающих заданий), то больше заданий не ставится в очередь, так как уже имеется более 13 ожидающих заданий. Кроме того, отображается следующее сообщение: У роботов уже есть незавершенные задания для этого процесса.
    • Сначала срабатывает A — в очереди 13 заданий.
      • Каждый раз, когда B срабатывает во время выполнения A, в среду добавляется до 20 заданий, в зависимости от того, сколько заданий из A выполняется или уже выполнено. Скажем, было выполнено 6 заданий. Когда срабатывает B, добавляется 14 заданий, так что максимальное количество заданий равно 20.
  5. Если триггер запускает один и тот же процесс несколько раз, количество связанных заданий в очереди ограничивается числом выполнений, указанным при определении триггера на вкладке "Выполнить цель". Они не суммируются при каждом запуске триггера.
    Допустим, каждые 30 минут вы хотите запускать один и тот же процесс 10 раз. При первом запуске триггера в очередь ставится 10 заданий. Если между триггерами было выполнено менее 10 заданий (скажем, 4), во время следующего триггера в очереди будет только 6 новых заданий, так как количество ожидающих заданий для этого процесса может быть не более 10.

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

Есть три параметра, которые помогут вам настроить правила запуска процессов:

Минимальное количество элементов для запуска первого задания

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

Максимально допустимое количество ожидающих и запущенных заданий

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

Другое задание запускается для каждого __ нового элемента(ов).

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

Orchestrator учитывает элементы очереди New и In Progress при расчете количества целевых заданий, которые должны быть выполнены для оптимального распределения ресурсов.

  1. Допустим, вы добавили в очередь 3 элемента очереди. Orchestrator вычисляет количество целевых заданий на основе количества новых и незавершенных элементов => требуется 3 целевых задания. Orchestrator запускает 3 задания для обработки 3 элементов очереди. 3 элемента переместятся в состояние "Выполняется".
  2. Добавьте в очередь еще 2 новых элемента. Orchestrator вычисляет количество заданий на основе количества новых и незавершенных элементов => требуется 5 (3+2) целевых заданий. Orchestrator запускает 2 новых задания, чтобы достичь цели 5.

Для обработки элементов очереди, которые не могут быть обработаны в тот момент, когда они поставлены в очередь, включая элементы с повторными попытками, каждые 30 минут по умолчанию выполняется проверка необработанных элементов, и, если условие срабатывания выполняется, триггер запускается один раз. опять таки. Обратите внимание, что вы можете использовать параметр Queue.ProcessActivationSchedule, чтобы настроить 30-минутный интервал проверки по умолчанию. Эта проверка гарантирует, что все элементы в очереди будут обработаны в следующих ситуациях:

  • Элементы очереди добавляются в очередь намного быстрее, чем они могут быть обработаны доступными ресурсами.
  • Элементы очереди добавляются в очередь в нерабочие дни, но могут быть обработаны только в рабочее время.
  • Обработка элементов очереди откладывается на более позднее время.По истечении этого времени они будут готовы к обработке после того, как будут идентифицированы в ходе 30-минутной проверки.

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

  • Тот, который добавляет 3 элемента в секунду на 20 секунд в целевую очередь (всего 60 элементов).
  • Тот, который обрабатывает 1 элемент в секунду из целевой очереди.
  • Минимальное количество элементов для запуска первого задания: 31 .
  • Максимально допустимое количество ожидающих и выполняющихся заданий: 3 .
  • Для каждых 10 новых элементов запускается другое задание.
  1. Через 11 секунд (33 элемента) запускается первое задание обработки элемента.
  2. Еще через 4 секунды (12 элементов) запускается второе задание обработки элементов.
  3. Еще через 4 секунды (12 элементов) запускается третье задание обработки элементов.

К моменту окончания добавления элемента в очередь первое задание обработало 9 элементов, второе — 5 элементов, третье — 1 элемент. Это 15 элементов за 20 секунд, обработанных тремя заданиями.

Это означает, что осталось обработать 45 элементов (60–15). Имея 3 задания, каждое из которых обрабатывает 1 элемент в секунду, это означает 15 секунд на обработку остатка.

Всего 35 секунд.

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

Процесс выполняется под определенной учетной записью. Только указание учетной записи приводит к тому, что Orchestrator динамически выделяет компьютер. Указание и учетной записи, и машины означает, что задание запускается именно на этой паре учетная запись-машина.

Процесс выполняется на одном из хост-компьютеров, подключенных к выбранному шаблону компьютера. Только указание компьютера приводит к тому, что Orchestrator динамически выделяет учетную запись. Указание и учетной записи, и машины означает, что задание запускается именно на этой паре учетная запись-машина.

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

Параметр Triggers.JobsCountStrategy позволяет выбрать стратегию запуска заданий с помощью триггеров. Доступны следующие параметры:

PerProcess — триггер запускает необходимое количество заданий с учетом всех ожидающих выполнения заданий для указанного процесса. Например, два триггера, определенные для одного и того же процесса, запускают 3 и 5 заданий соответственно. Если первый триггер запускает 3 задания в заданный момент времени, то при срабатывании второго триггера запускаются 2 задания, чтобы достичь 5 требуемых заданий.

PerTrigger: триггер запускает необходимое количество заданий с учетом всех существующих заданий, ранее запущенных этим же триггером. Например, триггер определен для запуска 9 заданий в заданный момент времени. Если 2 задания были успешно завершены к моменту повторного срабатывания этого триггера, Orchestrator запускает еще 2 задания, чтобы выполнить 9 требуемых заданий.

NoLimit: триггер запускает необходимое количество заданий независимо от существующих ожидающих выполнения заданий. Например, триггер определен для запуска 5 заданий в заданный момент времени. При втором срабатывании триггера запускаются еще 5 заданий.

Это позволяет вам определить несколько списков нерабочих дней для каждого арендатора, каждый со своим собственным набором дат, в которые вы можете настроить свои триггеры, чтобы они не запускались, если это необходимо. Это означает, что во время государственных праздников, выходных или любого другого дня, когда не ведется обычная деловая деятельность, ваши долгосрочные триггеры можно настроить так, чтобы они не запускались. Вы можете определить или загрузить такие календари на вкладке «Нерабочие дни» на странице «Настройки». Календарь BankHoliday создается по умолчанию, чтобы упростить определение первых нерабочих дней. По истечении нерабочих дней, определенных в выбранном календаре, триггер запускается как обычно.

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

Вы не можете сохранить триггер с часовым поясом, отличным от часового пояса, установленного на уровне клиента (страница "Настройки" > вкладка "Общие"), поскольку ограничения календаря не могут применяться в других часовых поясах. Клиент без явно заданного часового пояса наследует его от хоста.

Для получения дополнительной информации о том, как управлять нерабочими днями, нажмите здесь.

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

Читайте также: