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:
-
JobRepository
TaskExecutor
-
Field Summary
Fields inherited from class org.springframework.batch.core.launch.support.SimpleJobLauncher
logger
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Ensure the required dependencies of aJobRepository
have been set.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.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:SimpleJobLauncher
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
- Overrides:
run
in classSimpleJobLauncher
- 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
Description copied from class:SimpleJobLauncher
Set the JobRepository.- Overrides:
setJobRepository
in classSimpleJobLauncher
- Parameters:
jobRepository
- instance ofJobRepository
.
-
setTaskExecutor
public void setTaskExecutor(org.springframework.core.task.TaskExecutor taskExecutor) Description copied from class:SimpleJobLauncher
Set the TaskExecutor. (Optional)- Overrides:
setTaskExecutor
in classSimpleJobLauncher
- Parameters:
taskExecutor
- instance ofTaskExecutor
.
-
afterPropertiesSet
Description copied from class:SimpleJobLauncher
Ensure the required dependencies of aJobRepository
have been set.- Specified by:
afterPropertiesSet
in interfaceorg.springframework.beans.factory.InitializingBean
- Overrides:
afterPropertiesSet
in classSimpleJobLauncher
- Throws:
Exception
-