다음을 통해 공유


병렬 실행 및 동시성 구현

워크플로 실행을 최적화하는 것은 효율성과 생산성에 매우 중요합니다. Power Automate는 병렬 실행 및 동시성을 위한 강력한 기능을 제공하여 여러 작업을 동시에 실행하고 실행 시간을 크게 줄일 수 있습니다.

병렬 실행

Power Automate는 병렬 실행을 지원하여 흐름에서 두 개 이상의 단계를 동시에 실행할 수 있습니다. 워크플로는 모든 병렬 단계가 완료된 후에만 계속됩니다. 이 기능을 사용하면 특히 비동기 작업의 경우 보다 효율적으로 처리할 수 있습니다.

여러 작업을 동시에 실행하면 흐름의 전체 실행 시간이 줄어듭니다. 병렬 실행은 서로 의존하지 않고 독립적으로 처리할 수 있는 작업에 유용합니다.

병렬 분기

실행하는 데 5초 이상 걸리는 작업에는 병렬 분기를 사용합니다. 이 접근 방식은 시스템에 부담을 주지 않으면서 흐름의 성능을 최적화합니다.

병렬 분기가 있는 클라우드 흐름의 스크린샷.

병렬 분기의 사용 사례:

  • 차단되지 않는 승인 요청 보내기: 병렬 분기를 사용하여 다른 작업을 차단하지 않는 승인 요청을 보냅니다.
  • Quorum 기반 승인 만들기: 대부분의 응답을 기반으로 결정이 내려지는 Quorum 기반 승인 프로세스를 구현합니다.
  • 여러 시스템에서 레코드 생성 또는 업데이트: 서로 다른 시스템에서 동시에 레코드를 생성하거나 업데이트하여 데이터 일관성을 보장하고 처리 시간을 단축합니다.
  • 여러 소스의 데이터 통합: 다양한 소스에서 데이터를 병렬로 검색하고 추가 처리를 위해 단일 데이터 세트로 통합합니다.

스케줄링 오버헤드 감소

엔진에서 직선 작업을 순차적으로 실행할 수 있습니다. 병렬 구조화는 흐름을 더 잘 구성하고 시간을 절약하는 데 도움이 됩니다. 여러 변수를 병렬로 초기화하면 시간을 절약할 수 있습니다.

흐름에서 건너뛴 작업의 수를 최소화하는 것이 중요합니다. 각 분기에 많은 작업이 있는 와이드 switch 문 또는 자주 사용되지 않는 경로에 더 많은 작업이 있는 병렬 분기는 흐름의 가독성과 유지 관리에 부정적인 영향을 줄 수 있습니다.

Switch 분기 내에서 건너뛴 작업이 많은 대신 switch 분기에서 자식 흐름을 호출합니다. 이렇게 하면 많은 수의 개별 작업이 아닌 관련 없는 하위 흐름을 건너뛸 수 있습니다. 이 접근 방식은 기본 흐름을 단순화하고 유지 관리를 더 쉽게 만듭니다.

각 분기 내에서 작업 수를 줄이면 흐름을 더 읽기 쉽고 이해하기 쉽게 만들 수 있습니다. 하위 흐름을 사용하면 워크플로의 특정 부분을 독립적으로 관리하고 업데이트할 수 있으므로 전체 유지 관리 프로세스가 간소화됩니다.

동시 실행 제어

동시성을 사용하면 Apply to each 루프에서 병렬 실행을 사용할 수 있습니다. 기본적으로 Apply to each 루프에 적용은 순차적으로 실행되므로 대용량 데이터를 처리할 때 시간이 오래 걸릴 수 있습니다. 루프의 항목을 순차적으로 실행할 필요가 없는 경우 동시성을 사용하면 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초

Apply to each 작업에 대한 동시성 제어는 클라우드 흐름의 최상위 수준에만 적용됩니다. Apply to each 작업을 중첩하면 내부 작업이 항상 순차적으로 실행됩니다.