Histórico
Quando uma folha de controle tem muitas linhas ou o tempo do processo é excessivo, o uso de Cadeias paralelas pode reduzir significativamente o tempo de execução.
Cenário de exemplo
Imagine que você tem um grupo de comandos em sua cadeia que usa um Group Iterator. Nessa configuração, o conteúdo da planilha de controle é recuperado de uma planilha Workiva usando o comando Get Sheet Data. Em seguida, a cadeia repete um conjunto de ações para cada linha da planilha. (Consulte as instruções de configuração aqui.)
Se a ordem de execução das linhas da planilha de controle não for importante, e cada linha puder ser processada independentemente, você poderá aumentar a eficiência da cadeia executando-as em paralelo usando as etapas a seguir.
Nota: As etapas abaixo são baseadas na amostra de cadeia mostrada em cima. Ajuste conforme necessário para sua própria cadeia e quaisquer comandos extras que ela possa ter.
Etapa 1: Prepare sua cadeia primária
- Exclua todos os links entre todos os nós.
- Exclua os nós CSV to JSON e Command Group.
- Adicione um comando Advanced Query do conector Tabular Transformations e conecte-o ao nó Get Sheet Data.
- Configure o nó com os seguintes valores:
- Tabelas > Arquivo: selecione a saída Get Sheet Data > Data do painel variável.
- Tabelas > Nome da tabela: use um nome sem espaços.
- Consulta: use a função MySQL
NTILEpara atribuir um número de grupo a cada linha (por exemplo,NTILE(3)para três grupos).
Nota: Você terá de testar seu processo para localizar o número apropriado de grupos que se alinhe ao tempo de execução desejado. Como melhor prática, o número deve ser inferior a 10.
Etapa 2: Configurar a subcadeia para ser executada em paralelo
- Na subcadeia executada pelo evento Run Chain, adicione ou altere o comando Runtime Inputs. Lembrete: este deve ser o primeiro nó da cadeia. Configure duas entradas para ele: uma entrada FileField para o arquivo de dados e uma entrada NumberField para o número do grupo.
- Para garantir que cada instância processe apenas as linhas atribuídas a ela, conecte um comando Filter Rows imediatamente após o comando Runtime Inputs e antes de outros comandos. O filtro isolará os registros por número de grupo, garantindo que todos os comandos subsequentes operem apenas nas linhas corretas.
Nota: O campo Search Columns é baseado em 0.
- Em Chain Settings, certifique-se de que a opção Allow concurrent runs esteja ativada.
Etapa 3: passar pelo arquivo e pelo número do grupo
- Na Cadeia primária, adicione um comando Run Chain para cada número de grupo usado na função
NTILE(por exemplo, 3 comandos paraNTILE(3)).- Arquivo de dados Entrada em tempo de execução: selecione Advanced Query > Result saída do painel de variáveis.
- Número do grupo Entrada em tempo de execução: Um número exclusivo de 1 até o número total de grupos.
Resultado
Sua cadeia agora está processando três vezes mais linhas da planilha de controle de uma só vez. Você pode aumentar ainda mais essa escala aumentando o número NTILE e adicionando os comandos correspondentes Run Chain.
Aviso
- Evite executar muitas cadeias paralelas de uma só vez, pois isso pode exceder os limites da plataforma e causar falhas nos comandos. Como melhor prática, o número de cadeias paralelas deve ser inferior a 10.
- Todas as soluções de cadeia devem ser exaustivamente testadas em relação a casos extremos e a todos os tipos de dados relevantes antes de serem usadas em ambientes de produção ou ao vivo.
- Cadeias com mais de seis níveis aninhados de uso de Executar cadeia podem não ser exportadas ou importadas corretamente.
Recursos adicionais
Para obter mais informações sobre as Folhas de controle de cadeia, consulte alguns de nossos outros recursos
- Para obter mais informações básicas, consulte Using Control Sheets.
- Para ver um caso de uso popular de planilhas de controle, consulte nosso modelo Control Sheet Scheduler Chain.