Retry
Descubra mais sobre o componente Retry e saiba como utilizá-lo na Digibee Integration Platform.
O Retry permite novas tentativas de execução de passos definidos em um subpipeline.
Parâmetros
Dê uma olhada nos parâmetros de configuração do componente. Parâmetros suportados por expressões Double Braces estão marcados com (DB)
.
Parâmetro | Descrição | Valor padrão | Tipo de dado |
---|---|---|---|
Maximum Number of Retries | Número máximo de tentativas. A primeira tentativa também conta, então se o passo falhar na primeira execução e você deseja que seja feita uma nova tentativa, o valor nesse parâmetro deve ser igual a 2. | 3 | Inteiro |
Timeout Of The Whole Retry Operation | Duração máxima da soma de todas as tentativas, incluindo a primeira (em milissegundos). | 30000 | Inteiro |
Fail On Error | se a opção for ativada, a execução do Retry que atingir o número máximo de tentativas ou a duração máxima, terminará com erro e será interrompida; do contrário, a execução do pipeline continua, mas o resultado da última tentativa será entregue ao próximo componente. | False | Booleano |
Definindo o subpipeline que é executado a cada tentativa
Para trabalhar com esse tipo de componente, é importante levar em consideração:
Subpipeline definido em onProcess: subpipeline a ser executado a cada nova tentativa.
Subpipeline definido em onException: subpipeline a ser executado sempre que uma tentativa resultar em falha.
Para entender melhor o funcionamento de subpipelines, leia a documentação Subpipelines.
A cada nova tentativa, o primeiro passo do subpipeline definido em onProcess recebe a mensagem de saída do último passo processado. Portanto, dados a serem reutilizados nas novas tentativas devem ser devidamente tratados para que possam ser acessíveis durante as novas tentativas (exemplo.: manipulação dos dados através de componentes Session).
Informando sucesso para uma execução do componente Retry
O Retry espera que uma propriedade success
com o valor true
seja informada no último passo do subpipeline para que a execução seja considerada bem sucedida. Se um erro ocorrer ou se a propriedade success
for informada com o valor false
ou for inexistente, o Retry entenderá que uma nova tentativa deverá ser executada.
Fluxo de mensagens
Entrada
Qualquer estrutura é aceita.
Saída
Mensagem de saída do último passo processado.
Tratamento de Erros
Quando um erro ocorre durante o processamento do subpipeline em onProcess, o subpipeline em onException será invocado se estiver definido.
No onException, é possível:
ter acesso aos detalhes do erro que ocorreu durante o processamento da última tentativa.
definir se o Retry continua as tentativas, informando uma propriedade
success
com o valorfalse
ou não a definindo. Caso a propriedadesuccess
seja especificada com o valortrue
, então o Retry será finalizado com sucesso e nenhuma outra tentativa será executada.
Cenários de utilização do componente Retry com tratamento de erros
Propriedade Fail on Error habilitada e nenhum subpipeline definido em onException
o pipeline será interrompido após todas as tentativas;
um erro será emitido a partir do componente Retry;
nenhum outro componente será invocado após o Retry.
Propriedade Fail on Error habilitada e um subpipeline definido em onException
o pipeline será interrompido após todas as tentativas;
o subpipeline definido em onException será executado após cada tentativa;
um erro será emitido a partir do componente Retry;
nenhum outro componente será invocado após o Retry.
Propriedade Fail on Error desabilitada e nenhum subpipeline definido em onException
o pipeline não será interrompido após todas as tentativas;
nenhum erro será emitido a partir do componente Retry;
o próximo componente será invocado recebendo a mensagem de saída do Retry.
Propriedade Fail on Error desabilitada e um subpipeline definido em onException
o pipeline não será interrompido após todas as tentativas;
o subpipeline definido em onException será executado após cada tentativa;
nenhum erro será emitido a partir do componente Retry;
o próximo componente será invocado recebendo a mensagem de saída do Retry.
Caso um componente de erro (como Throw Error ou Assert) seja utilizado dentro do subpipeline em onProcess ou um erro ocorra, então o Retry será finalizado e o erro será propagado para o pipeline. Além disso, sempre que a propriedade success
for definida com valor true
no último passo do subpipeline em onException, a execução do componente Retry também será concluída, independentemente da propriedade Fail on Error estar ativa.
Atualizado