> For the complete documentation index, see [llms.txt](https://docs.digibee.com/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.digibee.com/documentation/connectors-and-triggers/pt-br/connectors/logic/retry.md).

# Retry

Descubra mais sobre o conector Retry e saiba como utilizá-lo na Digibee Integration Platform.

O **Retry** permite novas tentativas de execução de passos definidos em um subpipelin&#x65;**.**

## Parâmetros

Dê uma olhada nos parâmetros de configuração do conector. Parâmetros suportados por [expressões Double Braces](/documentation/connectors-and-triggers/pt-br/double-braces/overview.md) estão marcados com `(DB)`.

<table data-full-width="true"><thead><tr><th>Parâmetro</th><th width="296">Descrição</th><th>Valor padrão</th><th>Tipo de dado</th></tr></thead><tbody><tr><td><strong>Maximum Number of Retries</strong></td><td>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.</td><td>3</td><td>Inteiro</td></tr><tr><td><strong>Timeout Of The Whole Retry Operation</strong></td><td>Duração máxima da soma de todas as tentativas, incluindo a primeira (em milissegundos).</td><td>30000</td><td>Inteiro</td></tr><tr><td><strong>Fail On Error</strong></td><td>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 conector.</td><td><em>False</em></td><td>Booleano</td></tr></tbody></table>

## Definindo o subpipeline que é executado a cada tentativa <a href="#h_4da0771299" id="h_4da0771299"></a>

Para trabalhar com esse tipo de conector, é 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](/documentation/developer-guide/pt-br/development-cycle/build-overview/pipelines/subpipelines.md).

{% hint style="warning" %}
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 conectores Session).
{% endhint %}

### Informando sucesso para uma execução do conector Retry <a href="#h_9121c6196f" id="h_9121c6196f"></a>

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 <a href="#h_81aedec92e" id="h_81aedec92e"></a>

### Entrada <a href="#h_8d4b07ca16" id="h_8d4b07ca16"></a>

Qualquer estrutura é aceita.

### Saída <a href="#h_04df5cd8db" id="h_04df5cd8db"></a>

Mensagem de saída do último passo processado.

## Tratamento de Erros <a href="#h_a3bc434e27" id="h_a3bc434e27"></a>

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 conector Retry com tratamento de erros <a href="#h_a1cba176b1" id="h_a1cba176b1"></a>

### Propriedade Fail on Error habilitada e nenhum subpipeline definido em onException <a href="#h_200edda8f2" id="h_200edda8f2"></a>

* o pipeline será interrompido após todas as tentativas;
* um erro será emitido a partir do conector **Retry**;
* nenhum outro conector será invocado após o **Retry**.

### Propriedade Fail on Error habilitada e um subpipeline definido em onException <a href="#h_389b2ed99a" id="h_389b2ed99a"></a>

* 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 conector **Retry**;
* nenhum outro conector será invocado após o **Retry**.

### Propriedade Fail on Error desabilitada e nenhum subpipeline definido em onException <a href="#h_a006162471" id="h_a006162471"></a>

* o pipeline não será interrompido após todas as tentativas;
* nenhum erro será emitido a partir do conector **Retry***;*
* o próximo conector será invocado recebendo a mensagem de saída do **Retry**.

### Propriedade Fail on Error desabilitada e um subpipeline definido em onException <a href="#h_aad3137ee2" id="h_aad3137ee2"></a>

* 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 conector **Retry***;*
* o próximo conector será invocado recebendo a mensagem de saída do **Retry***.*

{% hint style="warning" %}
Caso um conector de erro (como Throw Error ou Assert) seja utilizado dentro do subpipeline em onProcess, ou um erro ocorra, a tentativa falha e o Retry tenta novamente até atingir o valor de Maximum Number of Retries. O erro não é propagado nesse momento. O que acontece quando as tentativas se esgotam depende da propriedade Fail On Error: com Fail On Error desabilitado, o pipeline continua e o próximo conector recebe a mensagem da última tentativa que falhou; com Fail On Error habilitado, o pipeline é interrompido. Além disso, sempre que a propriedade `success` for definida com valor `true` no último passo do subpipeline em onException, a execução do conector Retry também será concluída, independentemente da propriedade Fail On Error estar ativa.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.digibee.com/documentation/connectors-and-triggers/pt-br/connectors/logic/retry.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
