Class RetryableAction<T>

    • Method Detail

      • retryOn

        public RetryableAction<T> retryOn​(Predicate<Throwable> exceptionPredicate)
        Adds an additional condition that should trigger retries.

        For some exceptions retrying is enabled globally (see ExceptionHook.shouldRetry(String, String, Throwable)). Conditions for those exceptions do not need to be specified here again.

        This method can be invoked multiple times to add further conditions that should trigger retries.

        Parameters:
        exceptionPredicate - predicate that decides if the action should be retried for a given exception
        Returns:
        this instance to enable chaining of calls
      • retryWithTrace

        public RetryableAction<T> retryWithTrace​(Predicate<Throwable> exceptionPredicate)
        Sets a condition that should trigger auto-retry with tracing.

        This condition is only relevant if an exception occurs that doesn't trigger (normal) retry.

        Auto-retry with tracing automatically captures traces for unexpected exceptions so that they can be investigated.

        Every call of this method overwrites any previously set condition for auto-retry with tracing.

        Parameters:
        exceptionPredicate - predicate that decides if the action should be retried with tracing for a given exception
        Returns:
        this instance to enable chaining of calls
      • onAutoTrace

        public RetryableAction<T> onAutoTrace​(Consumer<String> traceIdConsumer)
        Sets a callback that is invoked when auto-retry with tracing is triggered.

        Via the callback callers can find out with trace ID was used for the retry.

        Every call of this method overwrites any previously set trace ID consumer.

        Parameters:
        traceIdConsumer - trace ID consumer
        Returns:
        this instance to enable chaining of calls
      • listener

        public RetryableAction<T> listener​(com.github.rholder.retry.RetryListener retryListener)
        Sets a listener that is invoked when the action is retried.

        Every call of this method overwrites any previously set listener.

        Parameters:
        retryListener - retry listener
        Returns:
        this instance to enable chaining of calls
      • defaultTimeoutMultiplier

        public RetryableAction<T> defaultTimeoutMultiplier​(int multiplier)
        Increases the default timeout by the given multiplier.

        Every call of this method overwrites any previously set timeout.

        Parameters:
        multiplier - multiplier for the default timeout
        Returns:
        this instance to enable chaining of calls
      • call

        public T call()
               throws Exception
        Executes this action with retry.
        Returns:
        the result of the action
        Throws:
        Exception