Class AbstractPartitionHandler

java.lang.Object
org.springframework.batch.core.partition.support.AbstractPartitionHandler
All Implemented Interfaces:
PartitionHandler
Direct Known Subclasses:
MessageChannelPartitionHandler, TaskExecutorPartitionHandler

public abstract class AbstractPartitionHandler extends Object implements PartitionHandler
Base PartitionHandler implementation providing common base features. Subclasses are expected to implement only the doHandle(org.springframework.batch.core.StepExecution, java.util.Set) method which returns with the result of the execution(s) or an exception if the step failed to process.
Author:
Sebastien Gerard, Dave Syer, Mahmoud Ben Hassine
  • Field Details

    • gridSize

      protected int gridSize
  • Constructor Details

    • AbstractPartitionHandler

      public AbstractPartitionHandler()
  • Method Details

    • doHandle

      protected abstract Set<StepExecution> doHandle(StepExecution managerStepExecution, Set<StepExecution> partitionStepExecutions) throws Exception
      Executes the specified StepExecution instances and returns an updated view of them. Throws an Exception if anything goes wrong.
      Parameters:
      managerStepExecution - the whole partition execution
      partitionStepExecutions - the StepExecution instances to execute
      Returns:
      an updated view of these completed StepExecution instances
      Throws:
      Exception - if anything goes wrong. This allows implementations to be liberal and rely on the caller to translate an exception into a step failure as necessary.
    • handle

      public Collection<StepExecution> handle(StepExecutionSplitter stepSplitter, StepExecution managerStepExecution) throws Exception
      Description copied from interface: PartitionHandler
      Main entry point for PartitionHandler interface. The splitter creates all the executions that need to be farmed out, along with their input parameters (in the form of their ExecutionContext). The manager step execution is used to identify the partition and group together the results logically.
      Specified by:
      handle in interface PartitionHandler
      Parameters:
      stepSplitter - a strategy for generating a collection of StepExecution instances
      managerStepExecution - the manager step execution for the whole partition
      Returns:
      a collection of completed StepExecution instances
      Throws:
      Exception - if anything goes wrong. This allows implementations to be liberal and rely on the caller to translate an exception into a step failure as necessary.
      See Also:
    • getGridSize

      public int getGridSize()
      Returns the number of step executions.
      Returns:
      the number of step executions
    • setGridSize

      public void setGridSize(int gridSize)
      Passed to the StepExecutionSplitter in the handle(StepExecutionSplitter, StepExecution) method, instructing it how many StepExecution instances are required, ideally. The StepExecutionSplitter is allowed to ignore the grid size in the case of a restart, since the input data partitions must be preserved.
      Parameters:
      gridSize - the number of step executions that will be created