Este tópico descreve a etapa paralela e apresenta um exemplo.
Introdução
Uma etapa paralela executa várias ramificações simultaneamente. Cada ramificação contém uma série de etapas sequenciais.
Cada ramificação de uma etapa paralela possui uma variável local. Durante a execução da etapa paralela, todas as ramificações são processadas ao mesmo tempo. As etapas sequenciais em cada ramificação modificam a variável local correspondente. Após a conclusão de todas as ramificações, um mapeamento de saída transforma o array de variáveis locais na saída da etapa paralela.
Uma etapa paralela pode ter no máximo 100 ramificações.
A etapa paralela tem as seguintes propriedades:
(Obrigatório) type: tipo da etapa. O valor deve ser parallel.
(Obrigatório) name: nome da etapa.
-
(Obrigatório) branches: array de ramificações.
(Obrigatório) steps: define as etapas sequenciais da ramificação.
(Opcional) end: especifica se esta é a última etapa do fluxo.
(Opcional) inputMappings: mapeamentos de entrada.
-
(Opcional) outputMappings: mapeamentos de saída. A variável
$localdesta etapa é um array. Cada elemento do array é um objeto JSON com o resultado da execução de uma ramificação.NotaSe os mapeamentos de saída não forem especificados, a saída desta etapa será vazia por padrão.
Exemplo
O fluxo de exemplo a seguir define uma etapa paralela. Essa etapa contém duas ramificações, e cada uma inclui uma etapa pass.
version: v1
type: flow
steps:
- type: parallel
name: myparallel
branches:
- steps:
- type: pass
name: pass1
outputMappings:
- target: result
source: pass1
- steps:
- type: pass
name: pass2
outputMappings:
- target: result
source: pass2
outputMappings:
- target: result
source: $local[*].result
-
pass1tem a seguinte definição:{ "result": "pass1" } -
pass2tem a seguinte definição:{ "result": "pass2" } -
myparalleltem a seguinte definição:{ "result": ["pass1", "pass2"] }