Реализация параллельного выполнения и параллелизма

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

Параллельное выполнение

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

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

Параллельные ветви

Используйте параллельные ветви для действий, выполнение которых занимает более 5 секунд. Такой подход оптимизирует производительность потока, не перегружая систему.

Снимок экрана облачного потока с параллельными ветвями.

Сценарии использования параллельных ветвей:

  • Отправка неблокирующих запросов на утверждение: используйте параллельные ветви для отправки запросов на утверждение, которые не блокируют другие действия.
  • Создание утверждений на основе кворума: реализуйте процессы утверждения на основе кворума, при которых решение принимается на основе большинства ответов.
  • Создание или обновление записей в нескольких системах: обеспечение согласованности данных и сокращение времени обработки за счет одновременного создания или обновления записей в разных системах.
  • Консолидация данных из нескольких источников: параллельное извлечение данных из разных источников и объединение их в единый набор данных для дальнейшей обработки.

Снижение накладных расходов на планирование

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

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

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

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

Управление параллелизмом

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

Рассмотрим сценарий, в котором необходимо обновить поле состояния 100 записей. Вместо того, чтобы обновлять одну запись за другой, управление параллелизмом позволяет одновременно обновлять до 50 записей.

Помните о степени параллелизма, которую нужно установить:

  • Существуют накладные расходы, связанные с разделением работы, постановкой в очередь дополнительных потоков и задержками от вызываемой конечной точки.
  • Большое число (например, 50) не обязательно ускоряет работу.

Снимок экрана настройки элемента управления параллелизмом в действии Применить к каждому.

Некоторые другие реальные сценарии, в которых может быть применен этот подход:

  • Отправка отдельных сообщений электронной почты нескольким получателям
  • Обновление записей в Dataverse, списках SharePoint, SQL​
  • Массовое создание пользователей в Microsoft Entra ID
  • Создание параллельных утверждений

Ниже приведено сравнение влияния управления параллелизмом на обработку массивов в цикле For each.

Длина массива ​ Степень параллелизма ​ Время, затраченное на выполнение цикла ​
4 ​ Откл. ​ 21 секунда ​
4 ​ 2 ​ 11 секунд ​
4 ​ 4 ​ 6 секунд ​
4 ​ 6 ​ 6 секунд ​

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