Class ForegroundTask

java.lang.Object
org.apache.camel.support.task.ForegroundTask
All Implemented Interfaces:
BlockingTask, Task

public class ForegroundTask extends Object implements BlockingTask
Runs a task in the foreground, executing for a given number of iteration and sleeping between each of them.
  • Method Details

    • run

      public boolean run(org.apache.camel.CamelContext camelContext, BooleanSupplier supplier)
      Description copied from interface: BlockingTask
      Run the task
      Specified by:
      run in interface BlockingTask
      Parameters:
      camelContext - the camel context
      supplier - the task as a boolean supplier. The result is used to check if the task has completed or not. The supplier must return true if the execution has completed or false otherwise.
      Returns:
      true if the task has completed successfully or false if: 1) the budget is exhausted or 2) the task was interrupted.
    • doRun

      protected boolean doRun(BooleanSupplier supplier)
    • run

      public <T> Optional<T> run(org.apache.camel.CamelContext camelContext, Supplier<T> supplier, Predicate<T> predicate)
      Run a task until it produces a result
      Type Parameters:
      T - the type for the result
      Parameters:
      camelContext - the camel context
      supplier - the supplier of the result
      predicate - a predicate to test if the result is acceptable
      Returns:
      An optional with the result
    • isRunning

      public boolean isRunning()
      Description copied from interface: BlockingTask
      Whether the task has been submitted for running (the state of the task can be waiting for next run etc).
      Specified by:
      isRunning in interface BlockingTask
      Returns:
      true if the run method has been called.
    • elapsed

      public Duration elapsed()
      Description copied from interface: Task
      How long it took to run the task when the task was completed
      Specified by:
      elapsed in interface Task
      Returns:
      The duration to execute the task
    • iteration

      public int iteration()
      Description copied from interface: Task
      The current number of iterations (such as when the task is being repeated)
      Specified by:
      iteration in interface Task
      Returns:
      the current number of iterations
    • getCurrentDelay

      public long getCurrentDelay()
      Description copied from interface: Task
      The current computed delay.
      Specified by:
      getCurrentDelay in interface Task
    • getName

      public String getName()
      Description copied from interface: Task
      Optional name of the task
      Specified by:
      getName in interface Task
    • getStatus

      public Task.Status getStatus()
      Description copied from interface: Task
      Gets the task status.
      Specified by:
      getStatus in interface Task
    • getFirstAttemptTime

      public long getFirstAttemptTime()
      Description copied from interface: Task
      The time the first attempt was performed.
      Specified by:
      getFirstAttemptTime in interface Task
    • getLastAttemptTime

      public long getLastAttemptTime()
      Description copied from interface: Task
      The time the last attempt has been performed.
      Specified by:
      getLastAttemptTime in interface Task
    • getNextAttemptTime

      public long getNextAttemptTime()
      Description copied from interface: Task
      An indication about the time the next attempt will be made.
      Specified by:
      getNextAttemptTime in interface Task
    • getCurrentElapsedTime

      public long getCurrentElapsedTime()
      Description copied from interface: Task
      The current elapsed time.
      Specified by:
      getCurrentElapsedTime in interface Task
    • getException

      public Throwable getException()
      Description copied from interface: Task
      The task failed for some un-expected exception
      Specified by:
      getException in interface Task