0
我使用没有xml配置的spring批处理。我想创建一个由几个步骤组成的作业,并且我想对同一个作业进行多次迭代。所以基本上我想创建一个由几个步骤组成的流程,最后一步使用监听器检查一个条件,如果条件满足Job结束时返回一个状态,如果条件不满足,则它返回到第一步。Spring批处理作业执行iteraton使用注释
我试图用编程方式创建它,没有运气,我简化它到最简单的解决方案有两个步骤。
public class MyListener {
int iterations = 0;
@AfterStep
public ExitStatus afterStep(StepExecution stepExecution) {
if(3 > iterations) {
iterations ++;
return new ExitStatus("CONTINUE");
}
else {
iterations=0;
return new ExitStatus("FINISHED");
}
}
}
@Bean
public MyListener listener() {
return new MyListener();
}
@Bean
public Step step() {
return stepBuilderFactory.get("step").<Object, Object> chunk(1).reader(dummyReader())
.processor(logItemProcessor()).writer(logItemWriter()).build();
}
@Bean
public Step step2() {
return stepBuilderFactory.get("step").<Object, Object> chunk(1).reader(secondReader())
.processor(logItemProcessor()).writer(logItemWriter()).listener(listener()).build();
}
@Bean
public Job jobtest2() {
return jobBuilderFactory.get("testJob2")
.start(step())
.next(step2()).on("CONTINUE").to(step()).on("FINISHED").end().build()
.build();
}
这是我最后atemp但ID不会似乎工作
你什么意思是“没有运气”?什么有效,什么不起作用?豆子是否被捡起并注入某个地方?哪里?你如何开始该计划? jobtest2()甚至被调用? – Heri
不要使用监听器,而要使用JobExecutionDecider来重定向作业流程 –
道歉这是一个错字“没有运气”。豆没有被注入任何其他地方。我从休息服务使用joblauncher开始工作 – silvestrelosada