Java Spring批处理作业依赖关系

Java Spring批处理作业依赖关系,java,spring,spring-batch,Java,Spring,Spring Batch,我是新来的。我需要安排多个工作,其中一个工作取决于其他工作的完成情况。在SpringBatch中,我发现很容易设置步骤依赖关系。有没有办法让一份工作依赖于另一份工作 您可以使用JobExecutionListener.afterJob并根据第一个作业的结果运行另一个作业。有关更多详细信息,请参阅 但是,配置包含所有这些步骤的新作业并重新使用该作业中的现有步骤可能更有意义。您可以使用JobExecutionListener.afterJob并根据第一个作业的结果运行另一个作业。有关更多详细信息,请

我是新来的。我需要安排多个工作,其中一个工作取决于其他工作的完成情况。在SpringBatch中,我发现很容易设置步骤依赖关系。有没有办法让一份工作依赖于另一份工作

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


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

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


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

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());
}

SpringBatch不提供在作业之间建立依赖关系的方法。然而,实现这一点的理想方法是如何调用作业。这可以通过使用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());
}

为什么你不能一步一个脚印?布莱恩,我有两个脚印需要在两个工作中一个接一个地进行。然后工作也需要一个接一个地运行。我认为不可能连锁工作。至少不是从我在文档中找到的。我建议用链子固定台阶。如果有必要,你可以在不同的作业中重复使用步骤。为什么你不能将其作为一个步骤呢?Brian,我有两个步骤需要在两个作业中一个接一个地运行。然后工作也需要一个接一个地运行。我认为不可能连锁工作。至少不是从我在文档中找到的。我建议用链子固定台阶。如果有必要,你可以在不同的作业中重复使用步骤。为什么你不能将其作为一个步骤呢?Brian,我有两个步骤需要在两个作业中一个接一个地运行。然后工作也需要一个接一个地运行。我认为不可能连锁工作。至少不是从我在文档中找到的。我建议用链子固定台阶。如有必要,可以在不同作业中重复使用步骤。