Conecta-seEntrar na plataforma

Paralelo

Executa os blocos de dentro do contêiner várias vezes ao mesmo tempo, uma para cada item ou um número fixo de vezes.

Lógica e processamentoRecurso internoConexão: Sem conexão externa obrigatória

O que faz

O Paralelo é um contêiner: os blocos colocados dentro dele rodam em vários ramos ao mesmo tempo, um para cada item de uma lista ou um número fixo de ramos, em lotes de até 20. Quando todos os ramos terminam, o fluxo segue com os resultados reunidos.

Quando usar: Use quando cada item pode ser processado de forma independente e você quer terminar mais rápido, como consultar vários fretes ao mesmo tempo.

Exemplo de situação: Cotar o frete de vários pedidos ao mesmo tempo e reunir as respostas.

As execuções paralelas não têm ordem garantida entre si. Não use quando uma repetição depende do resultado da anterior; nesse caso, use o Laço.

Antes de começar

Conexão necessária: Sem conexão externa obrigatória.

Escolha o tipo: quantidade fixa de ramos ou um ramo para cada item de uma lista.

Passo a passo

  1. Na aba Blocos, arraste Paralelo para o desenho.
  2. Escolha o tipo: quantidade fixa de ramos ou um ramo para cada item de uma lista.
  3. Informe a quantidade ou a lista (ex.: <postgresql.rows>) e, se quiser, o tamanho do lote (de 1 a 20 ramos por vez).
  4. Arraste para dentro do contêiner os blocos que cada ramo deve executar e ligue-os ao ponto de início dele.
  5. Ligue a saída do contêiner à etapa que deve receber os resultados de todos os ramos.
  6. Execute com poucos itens primeiro e confira os ramos no terminal.

Operações

OperaçãoO que faz
Quantidade em paraleloExecuta os blocos de dentro em um número fixo de ramos ao mesmo tempo.
Paralelo para cada itemCria um ramo para cada item da lista informada.

Campos

Mostrar campos de
  • Tipo de paralelo

    Obrigatório

    Escolhe se os ramos são definidos por uma quantidade fixa ou pelos itens de uma lista.

    Opções:
    Quantidade em paralelo · Paralelo para cada item
    Padrão:
    Quantidade em paralelo
  • Quantidade em paralelo

    Obrigatório conforme a operação

    Quantos ramos executar ao mesmo tempo.

    Aparece em:
    Quantidade em paralelo
    Padrão:
    5
    Exemplo:
    3
  • Itens da coleção

    Obrigatório conforme a operação

    Lista cujos itens são distribuídos entre os ramos, um item por ramo.

    Aparece em:
    Paralelo para cada item
    Exemplo:
    <postgresql.rows>
  • Tamanho do lote paralelo

    Quantos ramos podem rodar ao mesmo tempo (de 1 a 20). Os demais esperam a vez.

    Exemplo:
    5

Saídas

Para usar um resultado deste bloco em uma etapa seguinte, digite < no campo e escolha o bloco e o campo. A referência tem o formato <parallel.index>: antes do ponto vai o nome do bloco no seu fluxo, em minúsculas, sem espaços e sem acentos.

ReferênciaTipoO que contém
<parallel.index>numberNúmero do ramo atual, começando em 0. Disponível só para os blocos de dentro.
<parallel.currentItem>anyItem da lista entregue a este ramo (tipo Paralelo para cada item).
<parallel.items>arrayLista completa distribuída entre os ramos.
<parallel.results>arrayResultados de todos os ramos, disponíveis para a etapa ligada depois do contêiner.

Exemplo de uso

Objetivo: Cotar o frete de vários pedidos ao mesmo tempo.

PostgreSQLParalelo (para cada item)Melhor Envio
Tipo de paralelo
Paralelo para cada item
Itens da coleção
<postgresql.rows>
Tamanho do lote paralelo
5

Os valores são ilustrativos. Teste primeiro com dados fictícios ou de homologação.

Erros comuns e como resolver

Os blocos de dentro não executam
Os blocos precisam estar dentro do contêiner e ligados ao ponto de início dele. Blocos soltos dentro do contêiner são ignorados.
A referência ao item atual chega vazia
Confira o tipo escolhido: o item atual só existe quando o contêiner percorre uma coleção. Confira também se a coleção é uma lista válida (por exemplo, a saída rows de um bloco de banco).
O resultado final veio em formato inesperado
A saída results é uma lista com o resultado de cada repetição, na ordem em que foram executadas. Use um bloco Transformar dados para juntar ou filtrar os itens.

Blocos relacionados