Class RetryUtils.RetryPolicy

java.lang.Object
dev.langchain4j.internal.RetryUtils.RetryPolicy
Enclosing class:
RetryUtils

public static final class RetryUtils.RetryPolicy extends Object
This class encapsulates a retry policy.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static final class 
    This class encapsulates a retry policy builder.
  • Constructor Summary

    Constructors
    Constructor
    Description
    RetryPolicy(int maxRetries, int delayMillis, double jitterScale, double backoffExp)
    Construct a RetryPolicy.
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    jitterDelayMillis(int retry)
    This method returns the jitter delay in milliseconds after a given retry.
    double
    rawDelayMs(int retry)
    This method returns the raw delay in milliseconds after a given retry.
    void
    sleep(int retry)
    This method sleeps after a given retry.
    <T> T
    withRetry(Callable<T> action)
    This method attempts to execute a given action up to 3 times with an exponential backoff.
    <T> T
    withRetry(Callable<T> action, int maxRetries)
    This method attempts to execute a given action up to a specified number of times with an exponential backoff.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • RetryPolicy

      public RetryPolicy(int maxRetries, int delayMillis, double jitterScale, double backoffExp)
      Construct a RetryPolicy.
      Parameters:
      maxRetries - The maximum number of retries. The action can be executed up to maxRetries + 1 times.
      delayMillis - The delay in milliseconds.
      jitterScale - The jitter scale.
      backoffExp - The backoff exponent.
  • Method Details

    • rawDelayMs

      public double rawDelayMs(int retry)
      This method returns the raw delay in milliseconds after a given retry.
      Parameters:
      retry - The retry number.
      Returns:
      The raw delay in milliseconds.
    • jitterDelayMillis

      public int jitterDelayMillis(int retry)
      This method returns the jitter delay in milliseconds after a given retry.
      Parameters:
      retry - The retry number.
      Returns:
      The jitter delay in milliseconds.
    • sleep

      public void sleep(int retry)
      This method sleeps after a given retry.
      Parameters:
      retry - The retry number.
    • withRetry

      public <T> T withRetry(Callable<T> action)
      This method attempts to execute a given action up to 3 times with an exponential backoff. If the action fails on all attempts, it throws a RuntimeException.
      Type Parameters:
      T - The type of the result of the action.
      Parameters:
      action - The action to be executed.
      Returns:
      The result of the action if it is successful.
      Throws:
      RuntimeException - if the action fails on all attempts.
    • withRetry

      public <T> T withRetry(Callable<T> action, int maxRetries)
      This method attempts to execute a given action up to a specified number of times with an exponential backoff. If the action fails on all attempts, it throws a RuntimeException.
      Type Parameters:
      T - The type of the result of the action.
      Parameters:
      action - The action to be executed.
      maxRetries - The maximum number of retries. The action can be executed up to maxRetries + 1 times.
      Returns:
      The result of the action if it is successful.
      Throws:
      RuntimeException - if the action fails on all attempts.