Class 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 Detail

      • 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.