Class ResultHolderResultQueue

java.lang.Object
org.springframework.batch.repeat.support.ResultHolderResultQueue

public class ResultHolderResultQueue extends Object
An implementation of the ResultQueue that throttles the number of expected results, limiting it to a maximum at any given time.
Author:
Dave Syer
  • Constructor Details

    • ResultHolderResultQueue

      public ResultHolderResultQueue(int throttleLimit)
      Parameters:
      throttleLimit - the maximum number of results that can be expected at any given time.
  • Method Details

    • isEmpty

      public boolean isEmpty()
    • isExpecting

      public boolean isExpecting()
    • expect

      public void expect() throws InterruptedException
      Tell the queue to expect one more result. Blocks until a new result is available if already expecting too many (as determined by the throttle limit).
      Throws:
      InterruptedException
      See Also:
      • ResultQueue.expect()
    • put

      public void put(org.springframework.batch.repeat.support.ResultHolder holder) throws IllegalArgumentException
      Throws:
      IllegalArgumentException
    • take

      public org.springframework.batch.repeat.support.ResultHolder take() throws NoSuchElementException, InterruptedException
      Get the next result as soon as it becomes available.

      Release result immediately if:
      • There is a result that is continuable.
      Otherwise block if either:
      • There is no result (as per contract of ResultQueue).
      • The number of results is less than the number expected.
      Error if either:
      • Not expecting.
      • Interrupted.
      Throws:
      NoSuchElementException
      InterruptedException
      See Also:
      • ResultQueue.take()