Spring Batch Job依赖项

时间:2015-06-05 23:00:21

标签: java spring spring-batch

我是Spring Batch的新手。我需要安排多个工作,其中一个工作取决于其他工作的完成。在Spring Batch中,我发现放置步骤依赖很容易。有没有办法让一份工作依赖于其他工作?

2 个答案:

答案 0 :(得分:0)

您可以使用JobExecutionListener.afterJob并根据第一个结果运行其他作业。有关详细信息,请参阅docs

但是,配置包含所有这些步骤的新作业并重新使用该作业中的现有步骤可能更有意义。

答案 1 :(得分:0)

Spring Batch没有提供在作业之间具有依赖关系的方法。然而,实现这一目标的理想方法是如何调用作业。使用Quartz调度程序可以轻松实现这一点。

或者可以这样做。

ApplicationContext context = new ClassPathXmlApplicationContext(config);
JobLauncher jobLauncher = (JobLauncher) context.getBean("jobLauncher");
Job job1 = (Job) context.getBean("testJob");
Job job2 = (Job) context.getBean("testJob2");


JobExecution execution1 = jobLauncher.run(job1, new JobParameters());
System.out.println("Exit Status : " + execution1.getStatus());
if(execution1.getStatus()==0){
     JobExecution execution2 = jobLauncher.run(job2, new JobParameters());
     System.out.println("Exit Status : " + execution2.getStatus());
}