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âmetroDescriçãoValor padrãoTipo 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 valor false ou não a definindo. Caso a propriedade success seja especificada com o valor true, 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