我有自己的 Spring Batch Job ( MyTaskletJob ),它实现了我的接口IJobBase ,它实现了Tasklet,
我的工作需要什么来实现另一种称为rollBack的方法
公共接口IJobBase扩展Tasklet {
void rollBack();
}
公共类MyTaskletJob IJobBase{
public RepeatStatus execute(StepContribution arg0, ChunkContext arg1){
…}
public void rollBack(){
…}
}
弹簧配置:
<bean id="jobTaskletStep1" class="com....job.MyTaskletJob ">
<property name="message" value="Hello..." />
</bean>
<batch:job id="backgroundJob">
<batch:step id="step0">
<batch:tasklet ref="jobTaskletStep1"/>
</batch:step>
</batch:job>
这是我运行我的工作的方式:
// 根据作业名创建作业
Job job = (Job) applicationContext.getBean(“backgroundJob”);
// 运行作业——jobLauncher将运行MyTaskletJob * execute * 方法
JobExecution myJobExecution = jobLauncher.run(job, jobParameters);
// 检查退出状态
If(myJobExecution.getExitStatus().equals(ExitStatus.FAILED)){
// 需要在MyTaskletJob上运行rollback()方法
我的问题是当 JobExecution FAILED 时如何调用方法 rollback() 方法