Class RetryFilter

java.lang.Object
org.jobrunr.jobs.filters.RetryFilter
All Implemented Interfaces:
ElectStateFilter, JobFilter

public class RetryFilter extends Object implements ElectStateFilter
A JobFilter of type ElectStateFilter that will retry the job if it fails for up to 10 times with an exponential back-off policy. This JobFilter is added by default in JobRunr.

If you want to configure the amount of retries, create a new instance and pass it to the JobRunrConfiguration, e.g.:

     JobRunr.configure()
                 ...
                 .withJobFilter(new RetryFilter(20, 4)) // this will result in 20 retries and the retries will happen after 4 seconds, 16 seconds, 64 seconds, ...
                 ...
                 .initialize();
 
  • Field Details

    • DEFAULT_BACKOFF_POLICY_TIME_SEED

      public static final int DEFAULT_BACKOFF_POLICY_TIME_SEED
      See Also:
    • DEFAULT_NBR_OF_RETRIES

      public static final int DEFAULT_NBR_OF_RETRIES
      See Also:
  • Constructor Details

    • RetryFilter

      public RetryFilter()
    • RetryFilter

      public RetryFilter(int numberOfRetries)
    • RetryFilter

      public RetryFilter(int numberOfRetries, int backOffPolicyTimeSeed)
  • Method Details

    • onStateElection

      public void onStateElection(Job job, JobState newState)
      Specified by:
      onStateElection in interface ElectStateFilter
    • getSecondsToAdd

      protected long getSecondsToAdd(Job job)
    • getExponentialBackoffPolicy

      protected long getExponentialBackoffPolicy(Job job, int seed)