Class SimpleJobLauncher
- java.lang.Object
- org.springframework.batch.core.launch.support.SimpleJobLauncher
- All Implemented Interfaces:
JobLauncher
,org.springframework.beans.factory.InitializingBean
public class SimpleJobLauncher extends java.lang.Object implements JobLauncher, org.springframework.beans.factory.InitializingBean
Simple implementation of theJobLauncher
interface. The Spring CoreTaskExecutor
interface is used to launch aJob
. This means that the type of executor set is very important. If aSyncTaskExecutor
is used, then the job will be processed within the same thread that called the launcher. Care should be taken to ensure any users of this class understand fully whether or not the implementation of TaskExecutor used will start tasks synchronously or asynchronously. The default setting uses a synchronous task executor. There is only one required dependency of this Launcher, aJobRepository
. The JobRepository is used to obtain a valid JobExecution. The Repository must be used because the providedJob
could be a restart of an existingJobInstance
, and only the Repository can reliably recreate it.- Since:
- 1.0
- Author:
- Lucas Ward, Dave Syer, Will Schipp, Michael Minella, Mahmoud Ben Hassine
- See Also:
JobRepository
,TaskExecutor
Field Summary
Fields Modifier and Type Field Description protected static org.apache.commons.logging.Log
logger
Constructor Summary
Constructors Constructor Description SimpleJobLauncher()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
afterPropertiesSet()
Ensure the required dependencies of aJobRepository
have been set.JobExecution
run(Job job, JobParameters jobParameters)
Run the provided job with the givenJobParameters
.void
setJobRepository(JobRepository jobRepository)
Set the JobRepository.void
setTaskExecutor(org.springframework.core.task.TaskExecutor taskExecutor)
Set the TaskExecutor.
Method Detail
run
public JobExecution run(Job job, JobParameters jobParameters) throws JobExecutionAlreadyRunningException, JobRestartException, JobInstanceAlreadyCompleteException, JobParametersInvalidException
Run the provided job with the givenJobParameters
. TheJobParameters
will be used to determine if this is an execution of an existing job instance, or if a new one should be created.- Specified by:
run
in interfaceJobLauncher
- Parameters:
job
- the job to be run.jobParameters
- theJobParameters
for this particular execution.- Returns:
- the
JobExecution
if it returns synchronously. If the implementation is asynchronous, the status might well be unknown. - Throws:
JobExecutionAlreadyRunningException
- if the JobInstance already exists and has an execution already running.JobRestartException
- if the execution would be a re-start, but a re-start is either not allowed or not needed.JobInstanceAlreadyCompleteException
- if this instance has already completed successfullyJobParametersInvalidException
- thrown if jobParameters is invalid.
setJobRepository
public void setJobRepository(JobRepository jobRepository)
Set the JobRepository.- Parameters:
jobRepository
- instance ofJobRepository
.
setTaskExecutor
public void setTaskExecutor(org.springframework.core.task.TaskExecutor taskExecutor)
Set the TaskExecutor. (Optional)- Parameters:
taskExecutor
- instance ofTaskExecutor
.
afterPropertiesSet
public void afterPropertiesSet() throws java.lang.Exception
Ensure the required dependencies of aJobRepository
have been set.- Specified by:
afterPropertiesSet
in interfaceorg.springframework.beans.factory.InitializingBean
- Throws:
java.lang.Exception