Class TaskExecutorJobLauncher
java.lang.Object
org.springframework.batch.core.launch.support.SimpleJobLauncher
org.springframework.batch.core.launch.support.TaskExecutorJobLauncher
- All Implemented Interfaces:
JobLauncher,org.springframework.beans.factory.InitializingBean
Implementation of the
JobLauncher interface based on a TaskExecutor.
This means that the type of executor set is very important. If a
SyncTaskExecutor 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, a JobRepository. The
JobRepository is used to obtain a valid JobExecution. The Repository must be used
because the provided Job could be a restart of an existing JobInstance,
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:
-
JobRepositoryTaskExecutor
-
Field Summary
Fields inherited from class org.springframework.batch.core.launch.support.SimpleJobLauncher
logger -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidEnsure the required dependencies of aJobRepositoryhave been set.run(Job job, JobParameters jobParameters) Run the provided job with the givenJobParameters.voidsetJobRepository(JobRepository jobRepository) Set the JobRepository.voidsetTaskExecutor(org.springframework.core.task.TaskExecutor taskExecutor) Set the TaskExecutor.Methods inherited from class org.springframework.batch.core.launch.support.SimpleJobLauncher
setMeterRegistry
-
Constructor Details
-
TaskExecutorJobLauncher
public TaskExecutorJobLauncher()
-
-
Method Details
-
run
public JobExecution run(Job job, JobParameters jobParameters) throws JobExecutionAlreadyRunningException, JobRestartException, JobInstanceAlreadyCompleteException, JobParametersInvalidException Description copied from class:SimpleJobLauncherRun the provided job with the givenJobParameters. TheJobParameterswill be used to determine if this is an execution of an existing job instance, or if a new one should be created.- Specified by:
runin interfaceJobLauncher- Overrides:
runin classSimpleJobLauncher- Parameters:
job- the job to be run.jobParameters- theJobParametersfor this particular execution.- Returns:
- the
JobExecutionif 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
Description copied from class:SimpleJobLauncherSet the JobRepository.- Overrides:
setJobRepositoryin classSimpleJobLauncher- Parameters:
jobRepository- instance ofJobRepository.
-
setTaskExecutor
public void setTaskExecutor(org.springframework.core.task.TaskExecutor taskExecutor) Description copied from class:SimpleJobLauncherSet the TaskExecutor. (Optional)- Overrides:
setTaskExecutorin classSimpleJobLauncher- Parameters:
taskExecutor- instance ofTaskExecutor.
-
afterPropertiesSet
Description copied from class:SimpleJobLauncherEnsure the required dependencies of aJobRepositoryhave been set.- Specified by:
afterPropertiesSetin interfaceorg.springframework.beans.factory.InitializingBean- Overrides:
afterPropertiesSetin classSimpleJobLauncher- Throws:
Exception
-