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) |
| 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 |
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<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)
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 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.NoSuchJobExecutionExceptionpublic 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
JobServicerestart in interface JobServicejobExecutionId - the job execution to restartJobExecution if successfulorg.springframework.batch.core.launch.NoSuchJobExecutionExceptionorg.springframework.batch.core.repository.JobExecutionAlreadyRunningExceptionorg.springframework.batch.core.repository.JobRestartExceptionorg.springframework.batch.core.repository.JobInstanceAlreadyCompleteExceptionorg.springframework.batch.core.launch.NoSuchJobExceptionorg.springframework.batch.core.JobParametersInvalidExceptionpublic 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.NoSuchJobExceptionorg.springframework.batch.core.repository.JobExecutionAlreadyRunningExceptionorg.springframework.batch.core.repository.JobRestartExceptionorg.springframework.batch.core.repository.JobInstanceAlreadyCompleteExceptionorg.springframework.batch.core.JobParametersInvalidExceptionpublic 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.NoSuchJobExceptionpublic 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 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.NoSuchJobExecutionExceptionorg.springframework.batch.core.launch.JobExecutionNotRunningExceptionpublic 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.NoSuchJobExecutionExceptionorg.springframework.batch.core.repository.JobExecutionAlreadyRunningException - 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.NoSuchJobExceptionpublic 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.NoSuchJobExceptionpublic 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.NoSuchJobExecutionExceptionpublic 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.NoSuchJobExceptionpublic 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.NoSuchJobExecutionExceptionNoSuchStepExecutionExceptionpublic 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.NoSuchJobExceptionpublic 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.NoSuchStepExceptionpublic 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.NoSuchStepExceptionpublic 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.NoSuchJobInstanceExceptionpublic 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.NoSuchJobExceptionpublic Collection<String> getStepNamesForJob(String jobName) throws org.springframework.batch.core.launch.NoSuchJobException
JobServicegetStepNamesForJob in interface JobServicejobName - the name of the joborg.springframework.batch.core.launch.NoSuchJobException - 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 © 2015. All rights reserved.