O encadeamento permite que etapas sejam executadas em paralelo, no mesmo servidor ou em servidores diferentes. O encadeamento é controlado pela propriedade Encadeamento
definida para uma etapa. Por padrão, a propriedade Encadeamento é definida como Não.
O encadeamento ajuda a reduzir o tempo de execução do projeto quando houver partes
de um projeto que possam ser executadas independentemente umas das outras.
Quando a propriedade Encadeamento de várias etapas adjacentes for definida como
Sim, o sistema tenta executar a etapa em paralelo. Tais etapas são consideradas
ativadas por encadeamento e cada etapa pode ser executada separadamente
enquanto o restante da tarefa continua. O encadeamento obedece as regras a seguir.
- Pelo menos duas etapas na sequência devem ter a propriedade Encadeamento definida como Sim para que ocorre o encadeamento. Um conjunto de etapas
encadeadas em sequência é chamado de bloco de encadeamento. Os blocos de encadeamento podem continuar
em etapas que são parte de uma Sequência. Por exemplo, se uma etapa de um projeto
contiver uma Sequência e a primeira etapa dessa Sequência também for encadeada,
as duas etapas serão parte do mesmo bloco de encadeamento.
Elas são executadas independentemente. O bloco de encadeamento segue as etapas encadeadas, incluindo
as etapas aninhadas Sequenciais, até que uma etapa de Junção ou uma etapa não encadeada seja encontrada.
Tenha cuidado para evitar condições de disputa ao utilizar etapas aninhadas de Sequência.
Uma condição de disputa pode ser causada por uma etapa encadeada de sequência dependendo dos resultados ou dados da etapa pai encadeada.
- Um bloco de encadeamento é terminado por uma etapa cuja propriedade Encadeamento está definida como Unir ou quando ele encontra uma etapa de não encadeamento. Nesse ponto, a execução da etapa se torna
sequencial novamente.
- Quando o sistema encontra uma etapa ativada por encadeamento, tenta
iniciar a etapa. Se a etapa seguinte também estiver encadeada, o sistema
tentará iniciar essa etapa e continuará na próxima etapa, repetindo até não ter mais nenhuma etapa ativada para encadeamento ou até atingir o limite da tarefa.
Se o seletor do projeto especificar um conjunto de servidores, o limite da tarefa será conceitualmente a soma dos limites de tarefas de servidores no conjunto.
Nota: A hora de início de uma etapa encadeada depende da disponibilidade do servidor
em que supostamente ela deve ser executada. Se uma etapa não puder ser iniciada, o sistema aguardará
e tentará novamente. Você não pode controlar explicitamente as etapas que começam primeiro.
- As etapas podem terminar a execução simultaneamente em um servidor (dependendo
da capacidade desse servidor) ou em vários servidores, dependendo de quantos servidores
correspondem ao seletor.
- Para forçar todas as etapas a serem executadas em um único servidor, utilize a propriedade Fixa no projeto.
- Se houver vários blocos de encadeamento, o primeiro bloco de encadeamento deverá ser concluído para que o bloco seguinte seja iniciado.
No exemplo
a seguir, as etapas 2, 3 e 4 devem ser concluídas antes do início das etapas 5 e 6.
Projeto |
Propriedade Encadeamento da Etapa |
Etapa 1 |
Não |
Etapa 2 |
Sim |
Etapa 3 |
Sim |
Etapa 4 |
Unir |
Etapa 5 |
Sim |
Etapa 6 |
Sim |
Etapa 7 |
Não |
- Utilize a propriedade Máx. de Encadeamentos do projeto
para que ele limite o número de encadeamentos que podem ser executados ao mesmo tempo. Cada
etapa ativada para encadeamento e seu projeto sequencial, se houver, podem resultar em processos
paralelos. Todos os processos são contados até que seja atingido o máximo para o projeto pai. O sistema para de ativar novos processos paralelos quando atinge o valor Máx. de Encadeamentos.
Ele aguarda até que o número de processos paralelos do projeto caia abaixo do valor Máx. de Encadeamentos antes de continuar.