A função experimental do Workflows
,
experimental.executions.map, inicia uma execução de fluxo de trabalho para cada
argumento correspondente e aguarda a conclusão de todas as execuções, retornando
uma lista em que cada elemento é o resultado de uma execução.
Se você estiver usando experimental.executions.map para oferecer suporte ao trabalho paralelo, poderá
migrar o fluxo de trabalho para usar etapas paralelas, executando loops
for comuns em paralelo.
Uma etapa parallel define uma parte do fluxo de trabalho em que duas ou mais etapas podem ser executadas simultaneamente. Uma etapa parallel aguarda até que todas as etapas definidas nela sejam concluídas ou interrompidas por uma exceção não tratada. Em seguida, a execução continua. Assim como experimental.executions.map, a ordem de execução não é garantida. Para
mais detalhes, consulte a página de referência de sintaxe para
etapas paralelas.
O uso de experimental.executions.map ou workflows.executions.run
exige uma cota extra de execuções simultâneas.
No entanto, ao usar etapas paralelas com chamadas para conectores
embutidos (consulte o exemplo de conector de tradução), nenhuma
cota de execução extra é necessária.
Os exemplos a seguir têm como objetivo ajudar você a substituir o uso de experimental.executions.map por uma etapa parallel.
Fluxo de trabalho de tradução
Dado um idioma de origem e destino, o fluxo de trabalho a seguir, chamado translate,
usa o
conector do Cloud Translation
para traduzir um texto de entrada e retornar o resultado. A API Cloud Translation precisa estar ativada.
YAML
main: params: [args] steps: - basic_translate: call: googleapis.translate.v2.translations.translate args: body: q: ${args.text} target: ${args.target} format: "text" source: ${args.source} result: r - return_step: return: ${r}
JSON
{ "main": { "params": [ "args" ], "steps": [ { "basic_translate": { "call": "googleapis.translate.v2.translations.translate", "args": { "body": { "q"