public class SimpleJobService extends java.lang.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(java.lang.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(java.lang.String name)
Count the job executions in the repository for a job.
|
int |
countJobInstances(java.lang.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(java.lang.String jobName,
java.lang.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(java.lang.Long jobExecutionId)
Get a
JobExecution by id. |
java.util.Collection<org.springframework.batch.core.JobExecution> |
getJobExecutionsForJobInstance(java.lang.String name,
java.lang.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(java.lang.String jobName)
Get the last
JobParameters used to execute a job successfully. |
org.springframework.batch.core.StepExecution |
getStepExecution(java.lang.Long jobExecutionId,
java.lang.Long stepExecutionId)
Locate a
StepExecution from its id and that of its parent
JobExecution. |
java.util.Collection<org.springframework.batch.core.StepExecution> |
getStepExecutions(java.lang.Long jobExecutionId)
Get the
step executions for a given job execution
(by id). |
java.util.Collection<java.lang.String> |
getStepNamesForJob(java.lang.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(java.lang.String jobName)
Check if a job has a
JobParametersIncrementer. |
boolean |
isLaunchable(java.lang.String jobName)
Convenience method to determine if a job is available for launching.
|
org.springframework.batch.core.JobExecution |
launch(java.lang.String jobName,
org.springframework.batch.core.JobParameters jobParameters)
Launch a job with the parameters provided.
|
java.util.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). |
java.util.Collection<org.springframework.batch.core.JobExecution> |
listJobExecutionsForJob(java.lang.String jobName,
int start,
int count)
List the
job executions for a job in descending
order of creation (usually close to execution order). |
java.util.Collection<org.springframework.batch.core.JobInstance> |
listJobInstances(java.lang.String jobName,
int start,
int count)
List the
job instances in descending order of
creation (usually close to order of execution). |
java.util.Collection<java.lang.String> |
listJobs(int start,
int count)
Query the job names in the system, either launchable or not.
|
java.util.Collection<org.springframework.batch.core.StepExecution> |
listStepExecutionsForStep(java.lang.String jobName,
java.lang.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(java.lang.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(java.lang.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 java.util.Collection<org.springframework.batch.core.StepExecution> getStepExecutions(java.lang.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(java.lang.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(java.lang.String jobName)
JobServiceJobParametersIncrementer.isIncrementable in interface JobServicejobName - the job namepublic org.springframework.batch.core.JobExecution restart(java.lang.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(java.lang.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(java.lang.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 java.util.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 java.util.Collection<java.lang.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(java.lang.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(java.lang.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(java.lang.String name)
throws org.springframework.batch.core.launch.NoSuchJobException
JobServicecountJobExecutionsForJob in interface JobServicename - the job nameorg.springframework.batch.core.launch.NoSuchJobExceptionpublic int countJobInstances(java.lang.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(java.lang.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 java.util.Collection<org.springframework.batch.core.JobExecution> getJobExecutionsForJobInstance(java.lang.String name,
java.lang.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(java.lang.Long jobExecutionId,
java.lang.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 java.util.Collection<org.springframework.batch.core.JobExecution> listJobExecutionsForJob(java.lang.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 java.util.Collection<org.springframework.batch.core.StepExecution> listStepExecutionsForStep(java.lang.String jobName,
java.lang.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(java.lang.String jobName,
java.lang.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 java.util.Collection<org.springframework.batch.core.JobInstance> listJobInstances(java.lang.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 java.util.Collection<java.lang.String> getStepNamesForJob(java.lang.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 java.lang.Exception
destroy in interface org.springframework.beans.factory.DisposableBeanjava.lang.Exception@Scheduled(fixedDelay=60000L) public void removeInactiveExecutions()
Copyright © 2015. All Rights Reserved.