public class SimpleJobService extends Object implements JobService, org.springframework.beans.factory.DisposableBean
JobService that delegates most of its work to other
off-the-shelf components.| Constructor and Description |
|---|
SimpleJobService(SearchableJobInstanceDao jobInstanceDao,
SearchableJobExecutionDao jobExecutionDao,
SearchableStepExecutionDao stepExecutionDao,
org.springframework.batch.core.repository.JobRepository jobRepository,
org.springframework.batch.core.launch.JobLauncher jobLauncher,
org.springframework.batch.core.configuration.ListableJobLocator jobLocator,
org.springframework.batch.core.repository.dao.ExecutionContextDao executionContextDao) |
SimpleJobService(SearchableJobInstanceDao jobInstanceDao,
SearchableJobExecutionDao jobExecutionDao,
SearchableStepExecutionDao stepExecutionDao,
org.springframework.batch.core.repository.JobRepository jobRepository,
org.springframework.batch.core.launch.JobLauncher jobLauncher,
org.springframework.batch.core.configuration.ListableJobLocator jobLocator,
org.springframework.batch.core.repository.dao.ExecutionContextDao executionContextDao,
javax.batch.operations.JobOperator jsrJobOperator) |
| Modifier and Type | Method and Description |
|---|---|
org.springframework.batch.core.JobExecution |
abandon(Long jobExecutionId)
Mark the
JobExecution as ABANDONED. |
int |
countJobExecutions()
Count the maximum number of executions that could be returned by
JobService.listJobExecutions(int, int). |
int |
countJobExecutionsForJob(String name)
Count the job executions in the repository for a job.
|
int |
countJobInstances(String name)
Count the number of
job instances in the repository
for a given job name. |
int |
countJobs()
Count the total number of jobs that can be returned by
JobService.listJobs(int, int). |
int |
countStepExecutionsForJobExecution(long jobExecutionId)
Count the step executions in the repository for a given job execution.
|
int |
countStepExecutionsForStep(String jobName,
String stepName)
Count the step executions in the repository for a given step name (or
pattern).
|
void |
destroy()
Stop all the active jobs and wait for them (up to a time out) to finish
processing.
|
org.springframework.batch.core.JobExecution |
getJobExecution(Long jobExecutionId)
Get a
JobExecution 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.JobInstance |
getJobInstance(long jobInstanceId)
Get a
job instance by id. |
org.springframework.batch.core.JobParameters |
getLastJobParameters(String jobName)
Get the last
JobParameters used to execute a job successfully. |
org.springframework.batch.core.StepExecution |
getStepExecution(Long jobExecutionId,
Long stepExecutionId)
Locate a
StepExecution from its id and that of its parent
JobExecution. |
Collection<org.springframework.batch.core.StepExecution> |
getStepExecutions(Long jobExecutionId)
Get the
step executions for a given job execution
(by id). |
Collection<String> |
getStepNamesForJob(String jobName)
Get the names of the steps in a job (or a historical list of recent
execution names if the Job is not launchable).
|
boolean |
isIncrementable(String jobName)
Check if a job has a
JobParametersIncrementer. |
boolean |
isLaunchable(String jobName)
Convenience method to determine if a job is available for launching.
|
org.springframework.batch.core.JobExecution |
launch(String jobName,
org.springframework.batch.core.JobParameters jobParameters)
Launch a job with the parameters provided.
|
Collection<org.springframework.batch.core.JobExecution> |
listJobExecutions(int start,
int count)
List the
job executions in descending order of
creation (usually close to execution order). |
Collection<org.springframework.batch.core.JobExecution> |
listJobExecutionsForJob(String jobName,
int start,
int count)
List the
job executions for a job in descending
order of creation (usually close to execution order). |
Collection<JobExecutionWithStepCount> |
listJobExecutionsForJobWithStepCount(String jobName,
int start,
int count)
List the
job executions for a job in descending
order of creation (usually close to execution order). |
Collection<JobExecutionWithStepCount> |
listJobExecutionsWithStepCount(int start,
int count)
List the
JobExecutions in 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 the
job instances in descending order of
creation (usually close to order of execution). |
Collection<String> |
listJobs(int start,
int count)
Query the job names in the system, either launchable or not.
|
Collection<org.springframework.batch.core.StepExecution> |
listStepExecutionsForStep(String jobName,
String stepName,
int start,
int count)
List the
step executions for a step in descending
order of creation (usually close to execution order). |
void |
removeInactiveExecutions()
Check all the active executions and see if they are still actually
running.
|
org.springframework.batch.core.JobExecution |
restart(Long jobExecutionId)
Delegates launching to
restart(Long, org.springframework.batch.core.JobParameters) |
org.springframework.batch.core.JobExecution |
restart(Long jobExecutionId,
org.springframework.batch.core.JobParameters params)
Launch a job with the parameters provided.
|
void |
setShutdownTimeout(int shutdownTimeout)
Timeout for shutdown waiting for jobs to finish processing.
|
org.springframework.batch.core.JobExecution |
stop(Long jobExecutionId)
Send a signal to a job execution to stop processing.
|
int |
stopAll()
Send a stop signal to all running job executions.
|
public SimpleJobService(SearchableJobInstanceDao jobInstanceDao, SearchableJobExecutionDao jobExecutionDao, SearchableStepExecutionDao stepExecutionDao, org.springframework.batch.core.repository.JobRepository jobRepository, org.springframework.batch.core.launch.JobLauncher jobLauncher, org.springframework.batch.core.configuration.ListableJobLocator jobLocator, org.springframework.batch.core.repository.dao.ExecutionContextDao executionContextDao)
public SimpleJobService(SearchableJobInstanceDao jobInstanceDao, SearchableJobExecutionDao jobExecutionDao, SearchableStepExecutionDao stepExecutionDao, org.springframework.batch.core.repository.JobRepository jobRepository, org.springframework.batch.core.launch.JobLauncher jobLauncher, org.springframework.batch.core.configuration.ListableJobLocator jobLocator, org.springframework.batch.core.repository.dao.ExecutionContextDao executionContextDao, javax.batch.operations.JobOperator jsrJobOperator)
public void setShutdownTimeout(int shutdownTimeout)
shutdownTimeout - in milliseconds (default 60 secs)public Collection<org.springframework.batch.core.StepExecution> getStepExecutions(Long jobExecutionId) throws org.springframework.batch.core.launch.NoSuchJobExecutionException
JobServicestep executions for a given job execution
(by id).getStepExecutions in interface JobServicejobExecutionId - the parent job execution idorg.springframework.batch.core.launch.NoSuchJobExecutionException - thrown if job execution specified does not existpublic boolean isLaunchable(String jobName)
JobServiceJobService.listJobs(int, int) might be in the
repository, but not be launchable if the host application has no
configuration for them.isLaunchable in interface JobServicejobName - the name of the jobpublic boolean isIncrementable(String jobName)
JobServiceJobParametersIncrementer.isIncrementable in interface JobServicejobName - the job namepublic org.springframework.batch.core.JobExecution restart(Long jobExecutionId) throws org.springframework.batch.core.launch.NoSuchJobExecutionException, org.springframework.batch.core.repository.JobExecutionAlreadyRunningException, org.springframework.batch.core.repository.JobRestartException, org.springframework.batch.core.repository.JobInstanceAlreadyCompleteException, org.springframework.batch.core.launch.NoSuchJobException, org.springframework.batch.core.JobParametersInvalidException
restart(Long, org.springframework.batch.core.JobParameters)restart in interface JobServicejobExecutionId - the job execution to restartJobExecution associated with the restart.org.springframework.batch.core.launch.NoSuchJobExecutionException - thrown if job execution specified does not existorg.springframework.batch.core.repository.JobExecutionAlreadyRunningException - thrown if job is already runningorg.springframework.batch.core.repository.JobRestartException - thrown if job can not be restartedorg.springframework.batch.core.repository.JobInstanceAlreadyCompleteException - thrown if job is already completeorg.springframework.batch.core.launch.NoSuchJobException - thrown if job does not existorg.springframework.batch.core.JobParametersInvalidException - the parameters specified are invalidpublic org.springframework.batch.core.JobExecution restart(Long jobExecutionId, org.springframework.batch.core.JobParameters params) throws org.springframework.batch.core.launch.NoSuchJobExecutionException, org.springframework.batch.core.repository.JobExecutionAlreadyRunningException, org.springframework.batch.core.repository.JobRestartException, org.springframework.batch.core.repository.JobInstanceAlreadyCompleteException, org.springframework.batch.core.launch.NoSuchJobException, org.springframework.batch.core.JobParametersInvalidException
JobServicerestart in interface JobServicejobExecutionId - the job execution to restartparams - the job parameters to use in the restartJobExecution if successfulorg.springframework.batch.core.launch.NoSuchJobExecutionException - thrown if job execution specified does not existorg.springframework.batch.core.repository.JobExecutionAlreadyRunningException - thrown if job is already executingorg.springframework.batch.core.repository.JobRestartException - thrown if job failed to restartorg.springframework.batch.core.repository.JobInstanceAlreadyCompleteException - thrown if job was already completeorg.springframework.batch.core.launch.NoSuchJobException - thrown if job specified does not existorg.springframework.batch.core.JobParametersInvalidException - thrown if job parameters are invalidpublic org.springframework.batch.core.JobExecution launch(String jobName, org.springframework.batch.core.JobParameters jobParameters) throws org.springframework.batch.core.launch.NoSuchJobException, org.springframework.batch.core.repository.JobExecutionAlreadyRunningException, org.springframework.batch.core.repository.JobRestartException, org.springframework.batch.core.repository.JobInstanceAlreadyCompleteException, org.springframework.batch.core.JobParametersInvalidException
JobServicelaunch in interface JobServicejobName - the job namejobParameters - the JobParametersJobExecution if successfulorg.springframework.batch.core.launch.NoSuchJobException - thrown if job specified does not existorg.springframework.batch.core.repository.JobExecutionAlreadyRunningException - thrown if job is already executingorg.springframework.batch.core.repository.JobRestartException - thrown if job failed to restartorg.springframework.batch.core.repository.JobInstanceAlreadyCompleteException - thrown if job was already completeorg.springframework.batch.core.JobParametersInvalidException - thrown if job parameters are invalidpublic org.springframework.batch.core.JobParameters getLastJobParameters(String jobName) throws org.springframework.batch.core.launch.NoSuchJobException
JobServiceJobParameters used to execute a job successfully.getLastJobParameters in interface JobServicejobName - the name of the joborg.springframework.batch.core.launch.NoSuchJobException - thrown if job specified does not existpublic Collection<org.springframework.batch.core.JobExecution> listJobExecutions(int start, int count)
JobServicejob executions in descending order of
creation (usually close to execution order).listJobExecutions in interface JobServicestart - the index of the first execution to returncount - the maximum number of executionsJobExecutionpublic Collection<JobExecutionWithStepCount> listJobExecutionsWithStepCount(int start, int count)
JobServiceJobExecutions in descending order of
creation (usually close to execution order) without step execution data.listJobExecutionsWithStepCount in interface JobServicestart - the index of the first execution to returncount - the maximum number of executionsJobExecutionWithStepCountpublic int countJobExecutions()
JobServiceJobService.listJobExecutions(int, int).countJobExecutions in interface JobServicepublic Collection<String> listJobs(int start, int count)
JobServiceJobRepository.listJobs in interface JobServicestart - the start index of the job names to returncount - the maximum number of job names to returnpublic int countJobs()
JobServiceJobService.listJobs(int, int).countJobs in interface JobServicepublic int stopAll()
JobServicestopAll in interface JobServicepublic org.springframework.batch.core.JobExecution stop(Long jobExecutionId) throws org.springframework.batch.core.launch.NoSuchJobExecutionException, org.springframework.batch.core.launch.JobExecutionNotRunningException
JobServiceJob and Step
implementations to ensure that the signal is obeyed. In particular, if
users provide a custom Tasklet to a Step it must check
the signal in the JobExecution itself.stop in interface JobServicejobExecutionId - the job execution id to stopJobExecution that was stoppedorg.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 runningpublic org.springframework.batch.core.JobExecution abandon(Long jobExecutionId) throws org.springframework.batch.core.launch.NoSuchJobExecutionException, org.springframework.batch.core.repository.JobExecutionAlreadyRunningException
JobServiceJobExecution as ABANDONED. If a stop signal is ignored
because the process died this is the best way to mark a job as finished
with (as opposed to STOPPED). An abandoned job execution can be
restarted, but a stopping one cannot.abandon in interface JobServicejobExecutionId - the job execution id to abortJobExecution that was abortedorg.springframework.batch.core.launch.NoSuchJobExecutionException - thrown if job execution specified does not existorg.springframework.batch.core.repository.JobExecutionAlreadyRunningException - thrown if the job is running (it
should be stopped first)public int countJobExecutionsForJob(String name) throws org.springframework.batch.core.launch.NoSuchJobException
JobServicecountJobExecutionsForJob in interface JobServicename - the job nameorg.springframework.batch.core.launch.NoSuchJobException - thrown if job specified does not existpublic int countJobInstances(String name) throws org.springframework.batch.core.launch.NoSuchJobException
JobServicejob instances in the repository
for a given job name.countJobInstances in interface JobServicename - the name of the joborg.springframework.batch.core.launch.NoSuchJobException - thrown if job specified does not existpublic org.springframework.batch.core.JobExecution getJobExecution(Long jobExecutionId) throws org.springframework.batch.core.launch.NoSuchJobExecutionException
JobServiceJobExecution by id.getJobExecution in interface JobServicejobExecutionId - the job execution idJobExecutionorg.springframework.batch.core.launch.NoSuchJobExecutionException - thrown if job execution specified does not existpublic Collection<org.springframework.batch.core.JobExecution> getJobExecutionsForJobInstance(String name, Long jobInstanceId) throws org.springframework.batch.core.launch.NoSuchJobException
JobServicegetJobExecutionsForJobInstance in interface JobServicename - the name of the jobjobInstanceId - the id of the job instanceorg.springframework.batch.core.launch.NoSuchJobException - thrown if job specified does not existpublic org.springframework.batch.core.StepExecution getStepExecution(Long jobExecutionId, Long stepExecutionId) throws org.springframework.batch.core.launch.NoSuchJobExecutionException, NoSuchStepExecutionException
JobServiceStepExecution from its id and that of its parent
JobExecution.getStepExecution in interface JobServicejobExecutionId - the job execution idstepExecutionId - the step execution idStepExecutionorg.springframework.batch.core.launch.NoSuchJobExecutionException - thrown if job execution specified does not existNoSuchStepExecutionException - thrown if the step execution specified does not existpublic Collection<org.springframework.batch.core.JobExecution> listJobExecutionsForJob(String jobName, int start, int count) throws org.springframework.batch.core.launch.NoSuchJobException
JobServicejob executions for a job in descending
order of creation (usually close to execution order).listJobExecutionsForJob in interface JobServicejobName - the job namestart - the start index of the first job executioncount - the maximum number of executions to returnJobExecutionorg.springframework.batch.core.launch.NoSuchJobException - thrown if job specified does not existpublic Collection<JobExecutionWithStepCount> listJobExecutionsForJobWithStepCount(String jobName, int start, int count) throws org.springframework.batch.core.launch.NoSuchJobException
JobServicejob executions for a job in descending
order of creation (usually close to execution order).listJobExecutionsForJobWithStepCount in interface JobServicejobName - the job namestart - the start index of the first job executioncount - the maximum number of executions to returnJobExecutionWithStepCountorg.springframework.batch.core.launch.NoSuchJobException - thrown if job specified does not existpublic Collection<org.springframework.batch.core.StepExecution> listStepExecutionsForStep(String jobName, String stepName, int start, int count) throws org.springframework.batch.core.step.NoSuchStepException
JobServicestep executions for a step in descending
order of creation (usually close to execution order).listStepExecutionsForStep in interface JobServicejobName - 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 returnStepExecutionorg.springframework.batch.core.step.NoSuchStepException - thrown if step specified does not existpublic int countStepExecutionsForStep(String jobName, String stepName) throws org.springframework.batch.core.step.NoSuchStepException
JobServicecountStepExecutionsForStep in interface JobServicejobName - the job name (or a pattern with wildcards)stepName - the step name (or a pattern with wildcards)org.springframework.batch.core.step.NoSuchStepException - thrown if step specified does not existpublic int countStepExecutionsForJobExecution(long jobExecutionId)
JobServicecountStepExecutionsForJobExecution in interface JobServicejobExecutionId - the id of the job execution.public org.springframework.batch.core.JobInstance getJobInstance(long jobInstanceId)
throws org.springframework.batch.core.launch.NoSuchJobInstanceException
JobServicejob instance by id.getJobInstance in interface JobServicejobInstanceId - the id of the instancejob instanceorg.springframework.batch.core.launch.NoSuchJobInstanceException - thrown if the job instance specified does not existpublic Collection<org.springframework.batch.core.JobInstance> listJobInstances(String jobName, int start, int count) throws org.springframework.batch.core.launch.NoSuchJobException
JobServicejob instances in descending order of
creation (usually close to order of execution).listJobInstances in interface JobServicejobName - the name of the jobstart - the index of the first to returncount - the maximum number of instances to returnjob instancesorg.springframework.batch.core.launch.NoSuchJobException - thrown if job specified does not existpublic Collection<String> getStepNamesForJob(String jobName) throws org.springframework.batch.core.launch.NoSuchJobException
JobServicegetStepNamesForJob in interface JobServicejobName - the name of the jobCollection of step names.org.springframework.batch.core.launch.NoSuchJobException - thrown if the job name cannot be locatedpublic void destroy()
throws Exception
destroy in interface org.springframework.beans.factory.DisposableBeanException@Scheduled(fixedDelay=60000L) public void removeInactiveExecutions()
Copyright © 2019 Pivotal Software, Inc.. All rights reserved.