6.8. 병렬 처리
OpenShift Serverless Logic은 병렬 작업 실행을 직렬화합니다. parallel
이라는 단어는 동시 실행을 나타내지 않지만 분기 실행 사이에 논리적 종속성이 없음을 의미합니다. 활성 분기가 실행을 일시 중지하면 활성 분기가 완료될 때까지 기다리지 않고 비활성 분기를 시작하거나 다시 시작할 수 있습니다. 예를 들어 활성 분기는 이벤트 수신을 기다리는 동안 해당 실행을 중단할 수 있습니다.
병렬 상태는 현재 워크플로우 인스턴스 실행 경로를 각 분기에 하나씩 여러 경로로 분할하는 상태입니다. 이러한 실행 경로는 병렬로 수행되며 정의된 completionType
매개변수 값에 따라 현재 실행 경로에 다시 결합됩니다.
JSON 형식의 병렬 워크플로우 예
{ "name":"ParallelExec", "type":"parallel", "completionType": "allOf", "branches": [ { "name": "Branch1", "actions": [ { "functionRef": { "refName": "functionNameOne", "arguments": { "order": "${ .someParam }" } } } ] }, { "name": "Branch2", "actions": [ { "functionRef": { "refName": "functionNameTwo", "arguments": { "order": "${ .someParam }" } } } ] } ], "end": true }
YAML 형식의 병렬 워크플로우 예
name: ParallelExec type: parallel completionType: allOf branches: - name: Branch1 actions: - functionRef: refName: functionNameOne arguments: order: "${ .someParam }" - name: Branch2 actions: - functionRef: refName: functionNameTwo arguments: order: "${ .someParam }" end: true
이전 예에서 allOf
는 상태가 전환되거나 종료되기 전에 모든 분기 실행을 정의해야 합니다. 이 매개변수가 설정되지 않은 경우 기본값입니다.