Class ChainTask

java.lang.Object
nz.org.riskscape.engine.task.WorkerTask
nz.org.riskscape.engine.task.ChainTask
All Implemented Interfaces:
AutoCloseable

public class ChainTask extends WorkerTask
  • Constructor Details

    • ChainTask

      public ChainTask(TaskSpec spec) throws nz.org.riskscape.problem.ProblemException
      Throws:
      nz.org.riskscape.problem.ProblemException
  • Method Details

    • hasPageInProgress

      public boolean hasPageInProgress()
      Description copied from class: WorkerTask

      Returns true if the task currently has a page of either input or output that it hasn't finished with yet.

      Overrides:
      hasPageInProgress in class WorkerTask
    • isReadyToRun

      public boolean isReadyToRun()
      Description copied from class: WorkerTask

      Returns true if the task has work it can do. Returns false if the task is blocked waiting on either more input, more output buffers to free up, or it's dependent on other tasks that haven't completed yet.

      Overrides:
      isReadyToRun in class WorkerTask
    • run

      public ReturnState run()
      Description copied from class: WorkerTask

      Processes the work that the task has to do. The task doesn't necessarily run to completion in one go - it's likely that the task will run out of input or output first, so it'll need to keep coming back and chipping away at the work.

      Specified by:
      run in class WorkerTask
    • close

      public void close()
      Description copied from class: WorkerTask

      Override this method to clean up any resources that were allocated/created by this task for use during execution. Will be called from the scheduler once the task has signaled it is complete, but it may also get called if a job that this task was part of has failed.

      Thread safety should be ensured by requiring the scheduler to only call close on a task that is not currently being run.

      Implementations shouldn't need to do any buffer management in this method, it's meant for closing things like TupleIterators or other sorts of resources that follow the Closeable pattern.

      Specified by:
      close in interface AutoCloseable
      Overrides:
      close in class WorkerTask
    • producesResult

      public boolean producesResult()
      Specified by:
      producesResult in class WorkerTask
    • getLastOperation

      public ChainTask.NamedOp getLastOperation()
    • getSpecNameBrief

      public String getSpecNameBrief()
      Overrides:
      getSpecNameBrief in class WorkerTask
      Returns:
      a unique name for the worker's TaskSpec that is brief and user-friendly. This can be used as a simple way to represent the work that this task is doing to the user.
    • getOperations

      public List<ChainTask.NamedOp> getOperations()