Class ParallelFlow

java.lang.Object
com.redhat.parodos.workflows.workflow.ParallelFlow
All Implemented Interfaces:
Work, WorkFlow

public class ParallelFlow extends Object
A parallel flow executes a set of work units in parallel. A ParallelFlow requires a ExecutorService to execute work units in parallel using multiple threads. It is the responsibility of the caller to manage the lifecycle of the executor service. The status of a parallel flow execution is defined as:
  • org.jeasy.flows.work.WorkStatus#COMPLETED: If all work units have successfully completed
  • org.jeasy.flows.work.WorkStatus#FAILED: If one of the work units has failed
Author:
Mahmoud Ben Hassine (mahmoud.benhassine@icloud.com)
  • Method Details

    • execute

      public ParallelFlowReport execute(WorkContext workContext)
      Execute the unit of work and return its report. Implementations are required to catch any checked or unchecked exceptions and return a WorkReport instance with a status of WorkStatus.FAILED and a reference to the exception.
      Parameters:
      workContext - context in which this unit of work is being executed
      Returns:
      the execution report
    • getName

      public String getName()
      Description copied from interface: Work
      The name of the unit of work. The name must be unique within a workflow definition.
      Specified by:
      getName in interface Work
      Returns:
      name of the unit of work.
    • getProperties

      public WorkFlowPropertiesMetadata getProperties()
      Specified by:
      getProperties in interface WorkFlow
    • setProperties

      public void setProperties(WorkFlowPropertiesMetadata properties)
      Specified by:
      setProperties in interface WorkFlow