Package dev.failsafe

Interface ExecutionContext<R>

    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      int getAttemptCount()
      Gets the number of execution attempts so far, including attempts that are blocked before being executed, such as when a CircuitBreaker is open.
      java.time.Duration getElapsedAttemptTime()
      Returns the elapsed time since the last execution attempt began.
      java.time.Duration getElapsedTime()
      Returns the elapsed time since initial execution began.
      int getExecutionCount()
      Gets the number of completed executions so far.
      <T extends java.lang.Throwable>
      T
      getLastException()
      Returns the last exception that was recorded else null.
      R getLastResult()
      Returns the last result that was recorded else null.
      R getLastResult​(R defaultValue)
      Returns the last result that was recorded else the defaultValue.
      java.time.Instant getStartTime()
      Returns the time that the initial execution started.
      boolean isCancelled()
      Returns whether the execution has been cancelled.
      boolean isFirstAttempt()
      Returns true when an execution result has not yet been recorded, meaning this is the first execution attempt.
      boolean isRetry()
      Returns true when an execution result has already been recorded, meaning the execution is being retried.
      void onCancel​(CheckedRunnable cancelCallback)
      Sets the cancelCallback to be called if the execution is cancelled, such as by the resulting Call or CompletableFuture, or a Timeout.
    • Method Detail

      • onCancel

        void onCancel​(CheckedRunnable cancelCallback)
        Sets the cancelCallback to be called if the execution is cancelled, such as by the resulting Call or CompletableFuture, or a Timeout. Any exception thrown by the cancelCallback is ignored.
      • getElapsedTime

        java.time.Duration getElapsedTime()
        Returns the elapsed time since initial execution began.
      • getElapsedAttemptTime

        java.time.Duration getElapsedAttemptTime()
        Returns the elapsed time since the last execution attempt began.
      • getAttemptCount

        int getAttemptCount()
        Gets the number of execution attempts so far, including attempts that are blocked before being executed, such as when a CircuitBreaker is open. Will return 0 when the first attempt is in progress or has yet to begin.
      • getExecutionCount

        int getExecutionCount()
        Gets the number of completed executions so far. Executions that are blocked, such as when a CircuitBreaker is open, are not counted. Will return 0 when the first attempt is in progress or has yet to begin.
      • getLastException

        <T extends java.lang.Throwable> T getLastException()
        Returns the last exception that was recorded else null.
      • getLastResult

        R getLastResult()
        Returns the last result that was recorded else null.
      • getLastResult

        R getLastResult​(R defaultValue)
        Returns the last result that was recorded else the defaultValue.
      • getStartTime

        java.time.Instant getStartTime()
        Returns the time that the initial execution started.
      • isCancelled

        boolean isCancelled()
        Returns whether the execution has been cancelled. In this case the implementor should attempt to stop execution.
      • isFirstAttempt

        boolean isFirstAttempt()
        Returns true when an execution result has not yet been recorded, meaning this is the first execution attempt.
      • isRetry

        boolean isRetry()
        Returns true when an execution result has already been recorded, meaning the execution is being retried.