org.springframework.batch.core.launch

## Interface JobLauncher

- All Known Implementing Classes:
    SimpleJobLauncher

      public interface JobLauncher

  Simple interface for controlling jobs, including possible ad-hoc executions, based on different runtime identifiers. It is extremely important to note that this interface makes absolutely no guarantees about whether or not calls to it are executed synchronously or asynchronously. The javadocs for specific implementations should be checked to ensure callers fully understand how the job will be run.
  Author:
    Lucas Ward, Dave Syer

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `JobExecution` | `run(Job job, JobParameters jobParameters)` Start a job execution for the given `Job` and `JobParameters` .

- - ### Method Detail

    - #### run

          JobExecution run(Job job,
                           JobParameters jobParameters)
                    throws JobExecutionAlreadyRunningException,
                           JobRestartException,
                           JobInstanceAlreadyCompleteException,
                           JobParametersInvalidException

      Start a job execution for the given `Job` and `JobParameters` . If a `JobExecution` was able to be created successfully, it will always be returned by this method, regardless of whether or not the execution was successful. If there is a past `JobExecution` which has paused, the same `JobExecution` is returned instead of a new one created. A exception will only be thrown if there is a failure to start the job. If the job encounters some error while processing, the JobExecution will be returned, and the status will need to be inspected.
      Parameters:
        `job` - the job to be executed.
        `jobParameters` - the parameters passed to this execution of the job.
      Returns:
        the `JobExecution` if it returns synchronously. If the implementation is asynchronous, the status might well be unknown.
      Throws:
        `JobExecutionAlreadyRunningException` - if the JobInstance identified by the properties already has an execution running.
        `java.lang.IllegalArgumentException` - if the job or jobInstanceProperties are null.
        `JobRestartException` - if the job has been run before and circumstances that preclude a re-start.
        `JobInstanceAlreadyCompleteException` - if the job has been run before with the same parameters and completed successfully
        `JobParametersInvalidException` - if the parameters are not valid for this job