-
Improvement
-
Resolution: Unresolved
-
Major
-
None
dnusbaum suggested creating this ticket for an enhancement I am proposing to the retry basic step.
The retry step is a great utility step, but adding the ability to add a time delay between retries would be great. It can be as basic as adding a fixed time delay as a property to the step or an extensible option that allows you to use different algorithms for the time delay (Fixed, incremental, exponential, random, random exponential.
A pull request for the basic fixed implementation has already been created at https://github.com/jenkinsci/workflow-basic-steps-plugin/pull/97. This allows the user to do something like
retry(count: 3, useRetryDelay: true, delay: 40, units: "SECONDS").
If the more advanced implementation is desired, it has also been implemented (and can be added to the pull request. @basil suggested modeling the extensible solution of other existing APIs that do something like this and proposed looking at Tenacity. The algorithms currently implemented are fixed, random, incremental, exponential, random Exponential. This would allow the user to do something like:
retry(count: 3, useRetryDelay: true, delay: incremental(increment: 2, max: 10, min: 1, unit: 'SECONDS'))
All of this while still remaining backwards compatible and supporting something as simple as:
retry(3)
- is related to
-
JENKINS-54735 Pipeline retry clause: optionally delay between retries
- Open