Class SemaphoreThreadPoolBulkhead<V>

java.lang.Object
io.smallrye.faulttolerance.core.bulkhead.BulkheadBase<V>
io.smallrye.faulttolerance.core.bulkhead.SemaphoreThreadPoolBulkhead<V>
All Implemented Interfaces:
FaultToleranceStrategy<V>
Direct Known Subclasses:
FutureThreadPoolBulkhead

public class SemaphoreThreadPoolBulkhead<V> extends BulkheadBase<V>
Assumes that this bulkhead is already executed on an extra thread. Under that assumption, we don't have to submit tasks to another executor or use an actual queue. We just limit the task execution by semaphores.
  • Constructor Details

    • SemaphoreThreadPoolBulkhead

      public SemaphoreThreadPoolBulkhead(FaultToleranceStrategy<V> delegate, String description, int size, int queueSize)
  • Method Details

    • apply

      public V apply(InvocationContext<V> ctx) throws Exception
      Description copied from interface: FaultToleranceStrategy
      Apply the fault tolerance strategy around the target Callable. The Callable is wrapped in an InvocationContext.
      Parameters:
      ctx - the InvocationContext wrapping the Callable guarded by this fault tolerance strategy
      Returns:
      result computed by the target Callable
      Throws:
      Exception - if result couldn't be computed