Class SimpleJobService
java.lang.Object
org.springframework.cloud.dataflow.server.batch.SimpleJobService
- All Implemented Interfaces:
JobService
Implementation of
JobService that delegates most of its work to other
off-the-shelf components.- Author:
- Dave Syer, Michael Minella, Glenn Renfro, Corneil du Plessis
-
Constructor Summary
ConstructorsConstructorDescriptionSimpleJobService(SearchableJobInstanceDao jobInstanceDao, SearchableJobExecutionDao jobExecutionDao, SearchableStepExecutionDao stepExecutionDao, org.springframework.batch.core.repository.JobRepository jobRepository, org.springframework.batch.core.repository.dao.ExecutionContextDao executionContextDao, org.springframework.batch.core.launch.JobOperator jobOperator) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddStepExecutions(org.springframework.batch.core.JobExecution jobExecution) intCount the maximum number of executions that could be returned byJobService.listJobExecutions(int, int).intcountJobExecutionsForJob(String name, org.springframework.batch.core.BatchStatus status) Count the job executions in the repository for a job.intcountStepExecutionsForStep(String jobName, String stepName) Count the step executions in the repository for a given step name (or pattern).org.springframework.batch.core.JobExecutiongetJobExecution(Long jobExecutionId) Get aJobExecutionby id.getJobExecutionIdsByTaskExecutionIds(Collection<Long> taskExecutionIds) Returns a collection job execution ids given a collection of task execution ids that is mapped by id.Collection<org.springframework.batch.core.JobExecution>getJobExecutionsForJobInstance(String name, Long jobInstanceId) Get all the job executions for a given job instance.org.springframework.batch.core.JobInstancegetJobInstance(long jobInstanceId) Get ajob instanceby id.org.springframework.batch.core.StepExecutiongetStepExecution(Long jobExecutionId, Long stepExecutionId) Locate aStepExecutionfrom its id and that of its parentJobExecution.org.springframework.batch.core.StepExecutiongetStepExecution(org.springframework.batch.core.JobExecution jobExecution, Long stepExecutionId) Collection<org.springframework.batch.core.StepExecution>getStepExecutions(Long jobExecutionId) Get thestep executionsfor a given job execution (by id).Collection<org.springframework.batch.core.StepExecution>getStepExecutions(org.springframework.batch.core.JobExecution jobExecution) Collection<org.springframework.batch.core.JobExecution>listJobExecutions(int start, int count) List thejob executionsin descending order of creation (usually close to execution order).Collection<org.springframework.batch.core.JobExecution>listJobExecutionsForJob(String jobName, org.springframework.batch.core.BatchStatus status, int pageOffset, int pageSize) List thejob executionsfor a job in descending order of creation (usually close to execution order).listJobExecutionsForJobWithStepCount(String jobName, int start, int count) List thejob executionsfor a job in descending order of creation (usually close to execution order).listJobExecutionsForJobWithStepCount(Date fromDate, Date toDate, int start, int count) List thejob executionsfiltered by date range in descending order of creation (usually close to execution order).listJobExecutionsForJobWithStepCountFilteredByJobInstanceId(int jobInstanceId, int start, int count) List thejob executionsfiltered by job instance id in descending order of creation (usually close to execution order).listJobExecutionsForJobWithStepCountFilteredByTaskExecutionId(int taskExecutionId, int start, int count) List thejob executionsfiltered by task execution id in descending order of creation (usually close to execution order).listJobExecutionsWithStepCount(int start, int count) List theJobExecutionsin descending order of creation (usually close to execution order) without step execution data.Collection<org.springframework.batch.core.JobInstance>listJobInstances(String jobName, int start, int count) List thejob instancesin descending order of creation (usually close to order of execution).Collection<org.springframework.batch.core.StepExecution>listStepExecutionsForStep(String jobName, String stepName, int start, int count) List thestep executionsfor a step in descending order of creation (usually close to execution order).org.springframework.batch.core.JobExecutionLaunch a job with the parameters provided.voidsetShutdownTimeout(int shutdownTimeout) Timeout for shutdown waiting for jobs to finish processing.org.springframework.batch.core.JobExecutionSend a signal to a job execution to stop processing.
-
Constructor Details
-
SimpleJobService
public SimpleJobService(SearchableJobInstanceDao jobInstanceDao, SearchableJobExecutionDao jobExecutionDao, SearchableStepExecutionDao stepExecutionDao, org.springframework.batch.core.repository.JobRepository jobRepository, org.springframework.batch.core.repository.dao.ExecutionContextDao executionContextDao, org.springframework.batch.core.launch.JobOperator jobOperator)
-
-
Method Details
-
setShutdownTimeout
public void setShutdownTimeout(int shutdownTimeout) Timeout for shutdown waiting for jobs to finish processing.- Parameters:
shutdownTimeout- in milliseconds (default 60 secs)
-
getStepExecutions
public Collection<org.springframework.batch.core.StepExecution> getStepExecutions(Long jobExecutionId) throws org.springframework.batch.core.launch.NoSuchJobExecutionException Description copied from interface:JobServiceGet thestep executionsfor a given job execution (by id).- Specified by:
getStepExecutionsin interfaceJobService- Parameters:
jobExecutionId- the parent job execution id- Returns:
- the step executions for the job execution
- Throws:
org.springframework.batch.core.launch.NoSuchJobExecutionException- thrown if job execution specified does not exist
-
getStepExecutions
public Collection<org.springframework.batch.core.StepExecution> getStepExecutions(org.springframework.batch.core.JobExecution jobExecution) - Specified by:
getStepExecutionsin interfaceJobService
-
addStepExecutions
public void addStepExecutions(org.springframework.batch.core.JobExecution jobExecution) - Specified by:
addStepExecutionsin interfaceJobService
-
restart
public org.springframework.batch.core.JobExecution restart(Long jobExecutionId, org.springframework.batch.core.JobParameters params) throws org.springframework.batch.core.launch.NoSuchJobException Description copied from interface:JobServiceLaunch a job with the parameters provided. JSR-352 supports restarting of jobs with a new set of parameters. This method exposes this functionality- Specified by:
restartin interfaceJobService- Parameters:
jobExecutionId- the job execution to restartparams- the job parameters to use in the restart- Returns:
- the resulting
JobExecutionif successful - Throws:
org.springframework.batch.core.launch.NoSuchJobException- thrown if job specified does not exist
-
listJobExecutions
public Collection<org.springframework.batch.core.JobExecution> listJobExecutions(int start, int count) Description copied from interface:JobServiceList thejob executionsin descending order of creation (usually close to execution order).- Specified by:
listJobExecutionsin interfaceJobService- Parameters:
start- the index of the first execution to returncount- the maximum number of executions- Returns:
- a collection of
JobExecution
-
listJobExecutionsWithStepCount
Description copied from interface:JobServiceList theJobExecutionsin descending order of creation (usually close to execution order) without step execution data.- Specified by:
listJobExecutionsWithStepCountin interfaceJobService- Parameters:
start- the index of the first execution to returncount- the maximum number of executions- Returns:
- a collection of
JobExecutionWithStepCount
-
countJobExecutions
public int countJobExecutions()Description copied from interface:JobServiceCount the maximum number of executions that could be returned byJobService.listJobExecutions(int, int).- Specified by:
countJobExecutionsin interfaceJobService- Returns:
- the number of job executions in the job repository
-
stop
public org.springframework.batch.core.JobExecution stop(Long jobExecutionId) throws org.springframework.batch.core.launch.NoSuchJobExecutionException, org.springframework.batch.core.launch.JobExecutionNotRunningException Description copied from interface:JobServiceSend a signal to a job execution to stop processing. This method does not guarantee that the processing will stop, only that the signal will be delivered. It is up to the individualJobandStepimplementations to ensure that the signal is obeyed. In particular, if users provide a customTaskletto aStepit must check the signal in theJobExecutionitself.- Specified by:
stopin interfaceJobService- Parameters:
jobExecutionId- the job execution id to stop- Returns:
- the
JobExecutionthat was stopped - Throws:
org.springframework.batch.core.launch.NoSuchJobExecutionException- thrown if job execution specified does not existorg.springframework.batch.core.launch.JobExecutionNotRunningException- thrown if the job execution specified is not running
-
countJobExecutionsForJob
public int countJobExecutionsForJob(String name, org.springframework.batch.core.BatchStatus status) throws org.springframework.batch.core.launch.NoSuchJobException Description copied from interface:JobServiceCount the job executions in the repository for a job.- Specified by:
countJobExecutionsForJobin interfaceJobService- Parameters:
name- the job namestatus- the status of the job- Returns:
- the number of executions
- Throws:
org.springframework.batch.core.launch.NoSuchJobException- thrown if job specified does not exist
-
getJobExecution
public org.springframework.batch.core.JobExecution getJobExecution(Long jobExecutionId) throws org.springframework.batch.core.launch.NoSuchJobExecutionException Description copied from interface:JobServiceGet aJobExecutionby id.- Specified by:
getJobExecutionin interfaceJobService- Parameters:
jobExecutionId- the job execution id- Returns:
- the
JobExecution - Throws:
org.springframework.batch.core.launch.NoSuchJobExecutionException- thrown if job execution specified does not exist
-
getJobExecutionsForJobInstance
public Collection<org.springframework.batch.core.JobExecution> getJobExecutionsForJobInstance(String name, Long jobInstanceId) throws org.springframework.batch.core.launch.NoSuchJobException Description copied from interface:JobServiceGet all the job executions for a given job instance. On a sunny day there would be only one. If there have been failures and restarts there may be many, and they will be listed in reverse order of primary key.- Specified by:
getJobExecutionsForJobInstancein interfaceJobService- Parameters:
name- the name of the jobjobInstanceId- the id of the job instance- Returns:
- all the job executions
- Throws:
org.springframework.batch.core.launch.NoSuchJobException- thrown if job specified does not exist
-
getStepExecution
public org.springframework.batch.core.StepExecution getStepExecution(Long jobExecutionId, Long stepExecutionId) throws org.springframework.batch.core.launch.NoSuchJobExecutionException, NoSuchStepExecutionException Description copied from interface:JobServiceLocate aStepExecutionfrom its id and that of its parentJobExecution.- Specified by:
getStepExecutionin interfaceJobService- Parameters:
jobExecutionId- the job execution idstepExecutionId- the step execution id- Returns:
- the
StepExecution - Throws:
org.springframework.batch.core.launch.NoSuchJobExecutionException- thrown if job execution specified does not existNoSuchStepExecutionException- thrown if the step execution specified does not exist
-
getStepExecution
public org.springframework.batch.core.StepExecution getStepExecution(org.springframework.batch.core.JobExecution jobExecution, Long stepExecutionId) throws NoSuchStepExecutionException - Specified by:
getStepExecutionin interfaceJobService- Throws:
NoSuchStepExecutionException
-
listJobExecutionsForJobWithStepCount
public Collection<JobExecutionWithStepCount> listJobExecutionsForJobWithStepCount(String jobName, int start, int count) throws org.springframework.batch.core.launch.NoSuchJobException Description copied from interface:JobServiceList thejob executionsfor a job in descending order of creation (usually close to execution order).- Specified by:
listJobExecutionsForJobWithStepCountin interfaceJobService- Parameters:
jobName- the job namestart- the start index of the first job executioncount- the maximum number of executions to return- Returns:
- a collection of
JobExecutionWithStepCount - Throws:
org.springframework.batch.core.launch.NoSuchJobException- thrown if job specified does not exist
-
listStepExecutionsForStep
public Collection<org.springframework.batch.core.StepExecution> listStepExecutionsForStep(String jobName, String stepName, int start, int count) throws org.springframework.batch.core.step.NoSuchStepException Description copied from interface:JobServiceList thestep executionsfor a step in descending order of creation (usually close to execution order).- Specified by:
listStepExecutionsForStepin interfaceJobService- Parameters:
jobName- the name of the job associated with the step (or a pattern with wildcards)stepName- the step name (or a pattern with wildcards)start- the start index of the first executioncount- the maximum number of executions to return- Returns:
- a collection of
StepExecution - Throws:
org.springframework.batch.core.step.NoSuchStepException- thrown if step specified does not exist
-
countStepExecutionsForStep
public int countStepExecutionsForStep(String jobName, String stepName) throws org.springframework.batch.core.step.NoSuchStepException Description copied from interface:JobServiceCount the step executions in the repository for a given step name (or pattern).- Specified by:
countStepExecutionsForStepin interfaceJobService- Parameters:
jobName- the job name (or a pattern with wildcards)stepName- the step name (or a pattern with wildcards)- Returns:
- the number of executions
- Throws:
org.springframework.batch.core.step.NoSuchStepException- thrown if step specified does not exist
-
getJobInstance
public org.springframework.batch.core.JobInstance getJobInstance(long jobInstanceId) throws org.springframework.batch.core.launch.NoSuchJobInstanceException Description copied from interface:JobServiceGet ajob instanceby id.- Specified by:
getJobInstancein interfaceJobService- Parameters:
jobInstanceId- the id of the instance- Returns:
- a
job instance - Throws:
org.springframework.batch.core.launch.NoSuchJobInstanceException- thrown if the job instance specified does not exist
-
listJobInstances
public Collection<org.springframework.batch.core.JobInstance> listJobInstances(String jobName, int start, int count) throws org.springframework.batch.core.launch.NoSuchJobException Description copied from interface:JobServiceList thejob instancesin descending order of creation (usually close to order of execution).- Specified by:
listJobInstancesin interfaceJobService- Parameters:
jobName- the name of the jobstart- the index of the first to returncount- the maximum number of instances to return- Returns:
- a collection of
job instances - Throws:
org.springframework.batch.core.launch.NoSuchJobException- thrown if job specified does not exist
-
listJobExecutionsForJob
public Collection<org.springframework.batch.core.JobExecution> listJobExecutionsForJob(String jobName, org.springframework.batch.core.BatchStatus status, int pageOffset, int pageSize) Description copied from interface:JobServiceList thejob executionsfor a job in descending order of creation (usually close to execution order).- Specified by:
listJobExecutionsForJobin interfaceJobService- Parameters:
jobName- the job namestatus- the status of the job executionpageOffset- the start index of the first job executionpageSize- the maximum number of executions to return- Returns:
- a collection of
JobExecution
-
listJobExecutionsForJobWithStepCount
public Collection<JobExecutionWithStepCount> listJobExecutionsForJobWithStepCount(Date fromDate, Date toDate, int start, int count) Description copied from interface:JobServiceList thejob executionsfiltered by date range in descending order of creation (usually close to execution order).- Specified by:
listJobExecutionsForJobWithStepCountin interfaceJobService- Parameters:
fromDate- the date which start date must be greater than.toDate- the date which start date must be less than.start- the start index of the first job executioncount- the maximum number of executions to return- Returns:
- a collection of
JobExecutionWithStepCount
-
listJobExecutionsForJobWithStepCountFilteredByJobInstanceId
public Collection<JobExecutionWithStepCount> listJobExecutionsForJobWithStepCountFilteredByJobInstanceId(int jobInstanceId, int start, int count) Description copied from interface:JobServiceList thejob executionsfiltered by job instance id in descending order of creation (usually close to execution order).- Specified by:
listJobExecutionsForJobWithStepCountFilteredByJobInstanceIdin interfaceJobService- Parameters:
jobInstanceId- the job instance id associated with the execution.start- the start index of the first job executioncount- the maximum number of executions to return- Returns:
- a collection of
JobExecutionWithStepCount
-
listJobExecutionsForJobWithStepCountFilteredByTaskExecutionId
public Collection<JobExecutionWithStepCount> listJobExecutionsForJobWithStepCountFilteredByTaskExecutionId(int taskExecutionId, int start, int count) Description copied from interface:JobServiceList thejob executionsfiltered by task execution id in descending order of creation (usually close to execution order).- Specified by:
listJobExecutionsForJobWithStepCountFilteredByTaskExecutionIdin interfaceJobService- Parameters:
taskExecutionId- the task execution id associated with the execution.start- the start index of the first job executioncount- the maximum number of executions to return- Returns:
- a collection of
JobExecutionWithStepCount
-
getJobExecutionIdsByTaskExecutionIds
Description copied from interface:JobServiceReturns a collection job execution ids given a collection of task execution ids that is mapped by id.- Specified by:
getJobExecutionIdsByTaskExecutionIdsin interfaceJobService- Parameters:
taskExecutionIds- Collection of task execution ids that requestor to search for associated Job Ids.- Returns:
- Map with the task execution id as the key and the set of job execution ids as values.
-