Class TimeLimiterTransformer<T>

java.lang.Object
io.github.resilience4j.ratpack.internal.AbstractTransformer<T>
io.github.resilience4j.ratpack.timelimiter.TimeLimiterTransformer<T>
All Implemented Interfaces:
ratpack.func.Function<ratpack.exec.Upstream<? extends T>,​ratpack.exec.Upstream<T>>

public class TimeLimiterTransformer<T>
extends AbstractTransformer<T>
  • Nested Class Summary

    Nested classes/interfaces inherited from interface ratpack.func.Function

    ratpack.func.Function.ConditionalSpec<I extends java.lang.Object,​O extends java.lang.Object>
  • Field Summary

    Fields inherited from class io.github.resilience4j.ratpack.internal.AbstractTransformer

    recoverer
  • Method Summary

    Modifier and Type Method Description
    ratpack.exec.Upstream<T> apply​(ratpack.exec.Upstream<? extends T> upstream)  
    static <T> TimeLimiterTransformer<T> of​(io.github.resilience4j.timelimiter.TimeLimiter timeLimiter)
    Create a new transformer that can be applied to the Promise.transform(Function) method.
    void onException​(ratpack.exec.Downstream<? super T> downstream, java.lang.Throwable throwable)  
    void onPromiseResult​(java.util.concurrent.atomic.AtomicBoolean done, ratpack.exec.Downstream<? super T> innerDownstream, java.util.concurrent.ScheduledFuture<?> timeoutFuture, ratpack.exec.ExecResult<? extends T> execResult)  
    void onTimedPromiseResult​(ratpack.exec.Downstream<? super T> downstream, ratpack.exec.ExecResult<? extends T> execResult)  
    TimeLimiterTransformer<T> recover​(ratpack.func.Function<java.lang.Throwable,​? extends T> recoverer)
    Set a recovery function that will execute when the timeLimiter timeout is exceeded.
    void scheduleTimeout​(java.util.concurrent.atomic.AtomicBoolean done, ratpack.exec.Downstream<? super T> innerDownstream)  

    Methods inherited from class io.github.resilience4j.ratpack.internal.AbstractTransformer

    handleRecovery

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface ratpack.func.Function

    andThen, compose, toFunction, toGuavaFunction
  • Method Details

    • of

      public static <T> TimeLimiterTransformer<T> of​(io.github.resilience4j.timelimiter.TimeLimiter timeLimiter)
      Create a new transformer that can be applied to the Promise.transform(Function) method. The Promised value will pass through the timeLimiter, potentially causing it to time out.
      Type Parameters:
      T - the type of object
      Parameters:
      timeLimiter - the timeLimiter to use
      Returns:
      the transformer
    • recover

      public TimeLimiterTransformer<T> recover​(ratpack.func.Function<java.lang.Throwable,​? extends T> recoverer)
      Set a recovery function that will execute when the timeLimiter timeout is exceeded.
      Parameters:
      recoverer - the recovery function
      Returns:
      the transformer
    • apply

      public ratpack.exec.Upstream<T> apply​(ratpack.exec.Upstream<? extends T> upstream) throws java.lang.Exception
      Throws:
      java.lang.Exception
    • scheduleTimeout

      public void scheduleTimeout​(java.util.concurrent.atomic.AtomicBoolean done, ratpack.exec.Downstream<? super T> innerDownstream)
    • onPromiseResult

      public void onPromiseResult​(java.util.concurrent.atomic.AtomicBoolean done, ratpack.exec.Downstream<? super T> innerDownstream, java.util.concurrent.ScheduledFuture<?> timeoutFuture, ratpack.exec.ExecResult<? extends T> execResult)
    • onTimedPromiseResult

      public void onTimedPromiseResult​(ratpack.exec.Downstream<? super T> downstream, ratpack.exec.ExecResult<? extends T> execResult)
    • onException

      public void onException​(ratpack.exec.Downstream<? super T> downstream, java.lang.Throwable throwable)