플로우 우선순위

  • 릴리스 버전: Zurich
  • 업데이트 날짜 2025년 07월 31일
  • 소요 시간: 4분
  • 실행 대기 중인 다른 플로우와 관련하여 배경 플로우에 부여하고자 하는 우선순위를 지정합니다. 우선순위가 낮은 플로우를 실행하기 전에 우선순위가 높은 플로우 그룹을 실행합니다.

    백그라운드에서 실행되는 플로우에 대해서만 플로우 우선순위를 설정할 수 있습니다. 백그라운드 플로우는 사용 가능한 다음 작업자 스레드에서 실행됩니다. 기본적으로 워크플로우 스튜디오 사용 가능한 작업자 스레드의 절반까지 사용하여 백그라운드 플로우를 실행할 수 있습니다. 흐름을 실행하는 데 사용할 수 있는 작업자 스레드가 없는 경우 흐름을 실행하는 데 사용할 수 있는 작업자 스레드가 있을 때까지 흐름이 큐에 대기됩니다.

    이러한 우선순위 값 중 하나를 갖도록 배경 플로우를 설정할 수 있습니다.
    • 높음
    • 보통
    • 낮음
    기본적으로 백그라운드 플로우는 중간 우선순위로 실행됩니다.
    주:
    포그라운드에서 실행되는 플로우는 현재 스레드에서 실행되며 플로우 우선순위를 사용하여 실행 순서를 결정하지 않습니다.

    플로우 우선순위를 설정하면 작업자 스레드가 큐에서 플로우를 선택하는 순서가 결정됩니다. 작업자 스레드는 우선순위가 낮은 플로우를 실행하기 전에 우선순위가 높은 플로우를 여러 개 실행합니다. 이 우선순위 체계는 큐에 우선순위가 더 높은 플로우가 있는 경우에도 우선순위가 낮은 일부 플로우가 실행되도록 합니다. 실행할 작업 큐가 큰 경우, 우선순위가 낮은 대부분의 플로우는 우선순위가 높은 플로우가 실행될 때까지 기다려야 합니다. 우선 순위가 높은 플로우가 실행된 후 작업자 스레드는 우선 순위가 낮은 플로우를 실행할 수 있습니다.

    플로우가 1분 넘게 큐에 남아 있으면 시스템은 플로우를 실행할 다른 노드에 위임합니다. 플로우가 다른 노드에 위임되면 우선순위 값을 잃게 됩니다. 위임된 노드는 시간 순서대로 이벤트 큐에서 플로우를 끌어옵니다. 위임된 노드는 가장 오래된 플로우를 먼저 실행한 다음, 최신 플로우를 실행합니다. 일반적으로 다른 노드에서 실행되도록 흐름을 위임하는 것은 노드에서 사용 가능한 모든 작업자 스레드가 사용 중인 경우에만 발생합니다.
    주:
    작업자 스레드는 플로우 이벤트뿐만 아니라 모든 시스템 이벤트를 실행합니다.

    또한 플로우는 어떤 이유로든 일시 중지되면 우선순위 값을 잃게 됩니다. 일시 중지에서 다시 시작되는 플로우는 기본 중간 우선순위로 실행됩니다. 예를 들어 플로우가 높은 우선순위로 실행된 다음 일시 중지되어 일정 기간 동안 대기할 수 있습니다. 플로우 실행이 재개되면 중간 우선순위로 실행됩니다.

    우선순위가 낮은 플로우의 자동 일시 중지

    기본적으로 시스템은 우선순위가 낮은 플로우를 실행하여 우선순위가 높은 플로우가 차단되는 케이스를 확인합니다. 우선순위가 낮은 플로우가 2분 넘게 실행될 때마다 시스템은 지난 5분 동안 우선순위가 높은 플로우가 실행되었는지 확인합니다. 우선순위가 높은 플로우가 최근에 실행되지 않은 경우, 시스템은 이벤트 큐에서 실행 대기 중인 플로우 수를 확인합니다. 이벤트 큐에 실행 대기 중인 우선순위가 높은 플로우가 100개 이상 포함된 백로그가 있는 경우, 시스템은 우선순위가 낮은 플로우 실행을 일시 중지합니다. 플로우를 일시 중지하면 컨텍스트와 데이터가 유지됩니다. 일시 중지된 플로우는 처리할 수 있는 작업자가 있을 때 실행되도록 이벤트 큐로 돌아갑니다.

    우선순위가 낮은 플로우가 예상대로 실행되지 않는 경우 시스템에서 생성하고 실행하는 우선순위가 높은 플로우 수를 검토합니다. 플로우를 높거나 낮은 우선순위로 설정하는 시기에 대한 설계 고려 사항을 참조하십시오. 우선순위가 낮은 플로우가 아직 실행 중이 아니면 시스템 속성을 사용하여 우선순위가 낮은 플로우의 일시 중지를 비활성화할 수 있습니다. com.glide.hub.pause_low_priority_flows_enabled 속성의 값을 변경하려면 다음을 참조하십시오 워크플로우 스튜디오 플로우 시스템 속성 .

    빠른 API 지원

    빠른 API 메서드는 우선순위 설정을 유지합니다. 빠른 API 메서드로 실행되는 플로우는 이전에 플로우에 대해 정의된 것과 동일한 우선순위로 실행됩니다.

    설계 고려 사항

    플로우 우선순위를 설정할 때 다음 설계 고려 사항을 따르십시오.

    모든 플로우가 높은 우선순위로 실행되도록 설정하지 마십시오.
    모든 플로우를 높은 우선순위로 설정하는 대신 우선순위를 혼합하여 사용합니다. 작업자 스레드는 플로우 간의 상대적 우선순위를 사용하여 작업을 선택합니다. 모든 플로우가 높은 우선순위로 실행되는 경우 대기할 우선순위가 낮은 플로우가 없습니다.
    일시 중지해야 하는 플로우에 대해 플로우 우선순위를 설정하지 않습니다.
    일시 중지된 플로우는 실행을 재개할 때 우선순위 값을 잃게 되므로 일시 중지해야 하는 플로우를 기본 중간 우선순위로 유지하십시오.
    비즈니스에 중요한 플로우에 높은 우선순위 사용
    비즈니스 가치가 높고, 거의 실행되지 않으며, 런타임이 짧은 플로우로 높은 우선순위를 제한합니다. 대용량 플로우를 높은 우선순위로 설정하면 다른 플로우를 실행하는 데 사용할 수 있는 작업자 스레드 수가 제한되므로 피하십시오. 우선순위가 높은 장기 실행 플로우는 다른 플로우를 실행하는 데 사용할 수 있는 작업자 스레드를 줄일 수도 있습니다.
    대용량 플로우에 낮은 우선순위 사용
    시간에 민감한 다른 플로우가 먼저 실행될 수 있도록 대용량 플로우를 낮은 우선순위로 실행합니다. 우선순위가 낮은 플로우는 시간에 민감해서는 안 됩니다.
    시간에 민감한 플로우에 중간 우선순위 사용
    다른 플로우와 비교할 때 플로우에 시간 긴급도가 있는 경우 기본 플로우 우선순위를 사용합니다.