Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-59678

Add a time delay capability to the retry basic step

XMLWordPrintable

      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)
      

       

       

       

            krotte1 Kyle Rotte
            krotte1 Kyle Rotte
            Votes:
            13 Vote for this issue
            Watchers:
            14 Start watching this issue

              Created:
              Updated: