Java Spring批处理作业调度器
是否有任何方法可以为通过XML配置的特定Spring批处理作业指定调度程序,而不使用utils RunScheduler类,如下所示: 因此,目前我的配置如下所示:Java Spring批处理作业调度器,java,spring,scheduled-tasks,spring-batch,Java,Spring,Scheduled Tasks,Spring Batch,是否有任何方法可以为通过XML配置的特定Spring批处理作业指定调度程序,而不使用utils RunScheduler类,如下所示: 因此,目前我的配置如下所示: <batch:job id="testJob" job-repository="jobRepository" parent="jobParent"> <batch:step id="testStep" allow-start-if-complete="true"> &
<batch:job id="testJob" job-repository="jobRepository" parent="jobParent">
<batch:step id="testStep" allow-start-if-complete="true">
<batch:tasklet>
<batch:chunk
reader="testReader"
processor="testProcessor"
writer="jmsWriter">
</batch:chunk>
</batch:tasklet>
</batch:step>
</batch:job>
<task:scheduled-tasks>
<task:scheduled ref="testJobLauncher" method="runJob" cron="0 */5 * * * *"/>
</task:scheduled-tasks>
<bean id="testJobLauncher"
class="com.test.RunScheduler"
p:job-ref="testJob"
p:jobLauncher-ref="jobLauncher"
"/>
@Component
public class RunScheduler {
private JobLauncher jobLauncher;
private Job job;
public void runJob() {
try {
String dateParam = new Date().toString();
JobParameters param = new JobParametersBuilder().addString("date", dateParam).toJobParameters();
JobExecution execution = jobLauncher.run(job, param);
} catch (Exception e) {
LOGGER.error("Can't start job", e);
throw new RuntimeException(e);
}
}
public Job getJob() {
return job;
}
public void setJob(Job job) {
this.job = job;
}
public JobLauncher getJobLauncher() {
return jobLauncher;
}
public void setJobLauncher(JobLauncher jobLauncher) {
this.jobLauncher = jobLauncher;
}
}
您可以使用@EnableScheduling和cronSequenceGenerator的功能进行调度和cron设置,而无需依赖于util类