Class TaskTideExecutor<T extends TaskTideModel<T>>

java.lang.Object
org.tasktide.engine.executor.TaskTideExecutor<T>
Type Parameters:
T - of ItemTask,WorkItem
All Implemented Interfaces:
TaskTideWorkerUnit<T>
Direct Known Subclasses:
ItemTaskExecutor

public abstract class TaskTideExecutor<T extends TaskTideModel<T>> extends Object implements TaskTideWorkerUnit<T>
Abstract class to handle the nuances of workload execution
  • Field Details

    • LOGGER

      protected final org.apache.logging.log4j.Logger LOGGER
    • sharedCounter

      protected static final AtomicInteger sharedCounter
    • processExecutor

      protected final ProcessExecutor processExecutor
    • processCount

      protected int processCount
    • observer

      protected final TaskTideEngineObserver<T extends TaskTideModel<T>> observer
  • Constructor Details

    • TaskTideExecutor

      public TaskTideExecutor(TaskTideEngineObserver<T> observer, org.apache.logging.log4j.Logger LOGGER)
      Construct worker with workload and process runner
      Parameters:
      observer -
      LOGGER -
  • Method Details

    • runTasks

      public void runTasks(List<T> workload)
      Thread safe execution of tasks in a workload
      Parameters:
      workload - of ItemTask, WorkItem
    • executeTask

      public abstract boolean executeTask(T task) throws IOException, InterruptedException
      Abstract method to allow sub-classes to define logic around task execution
      Parameters:
      task -
      Returns:
      boolean
      Throws:
      IOException
      InterruptedException
    • handleFailure

      public void handleFailure(T task, Exception ex)
      Abstract method to allow sub-classes to define logic around handling failed task execution
      Parameters:
      task -
      ex -
    • getGlobalCount

      public static int getGlobalCount()
      Fetch value atomic counter
      Returns:
      int
    • getProcesCount

      public int getProcesCount()
      Get process count
      Returns:
      int
    • incrementCount

      public void incrementCount()
      Increment process count
    • decrementCount

      public void decrementCount()
      Decrement count