Retry

Discover more about the Retry component and how to use it on the Digibee Integration Platform.

Retry allows new retries of steps defined in a subpipeline to be executed.

Parameters

Take a look at the configuration parameters of the component. Parameters supported by Double Braces expressions are marked with (DB).

ParameterDescriptionDefault valueData type

Maximum Number of Retries

The first retry also counts, so if the step fails in the first execution and you want a new retry to be made, the value of this parameter should be 2.

3

Integer

Timeout Of The Whole Retry Operation

Maximum length of the sum of all retry attempts, including the first one (in milliseconds).

30000

Integer

Fail On Error

If the option is activated, the Retry execution that reaches the maximum number of tries or the maximum length will end with an error and will be interrupted; otherwise, the pipeline execution continues, but the result of the last try will be delivered to the next component.

False

Boolean

Defining the subpipeline to be executed on each new retry

To work with this type of component, it's important to consider:

  • Subpipeline defined in onProcess: subpipeline to be executed on each new retry.

  • Subpipeline defined in onException: subpipeline to be executed after an unsuccessful retry.

To better understand how subpipelines work, read the Subpipelines documentation.

On each new retry, the first step on the subpipeline defined in onProcess receives the output message from the last processed step. Therefore, data to be reused on new retries must be correctly handled to be accessible during the new retries (that is, the data manipulation through the Session component).

Informing success to a Retry block execution

The Retry component expects a "success" property with the "true" value to be informed in the last step of the subpipeline for the execution to be considered successful. If an error occurs or the “success” property is informed with a "false" value or doesn’t even exist, Retry will understand that a new retry must be executed.

Messages flow

Input

Any structure is accepted.

Output

The output message of the last processed step.

Handling Errors

When an error occurs during the processing of the subpipeline in onProcess, the subpipeline defined in onException will be invoked, if it's defined.

In onException, it's possible to:

  • have access to the details of the error that occurred during the processing of the last retry.

  • define if the Retry component continues with the retries, informing a “success” property with the "false" value. If a “success” property is specified with the "true" value, then Retry will be successfully finished and no other retry will be executed.

Usage scenarios of the Retry component with errors handling

Enabled Fail on Error property and no subpipeline defined in onException

  • the pipeline will be interrupted after all the retries;

  • an error will be thrown from the Retry component;

  • no other component will be invoked after the Retry.

Enabled Fail on Error property and a subpipeline defined in onException

  • the pipeline will be interrupted after all the retries;

  • the subpipeline defined in onException will be executed after every new retry;

  • an error will be thrown from the Retry component;

  • no other component will be invoked after the Retry.

Disabled Fail on Error property and no subpipeline defined in onException

  • the pipeline will not be interrupted after all the retries;

  • no error will be thrown from the Retry component;

  • the next component will be invoked receiving the output message from the Retry.

Disabled Fail on Error property and a subpipeline defined in onException

  • the pipeline will not be interrupted after all the retries;

  • the subpipeline defined in onException will be executed after every new retry;

  • no error will be thrown from the Retry component;

  • the next component will be invoked receiving the output message from the Retry.

If an error component (such as Throw Error or Assert) is used on the subpipeline in onProcess or if an error occurs, then Retry will be finished and the error will be propagated to the pipeline. Besides, whenever the "success" property is defined with the "true" value on the last step of the subpipeline in onException, the Retry execution will be finished, even if the Fail on Error property is activated.

Last updated