【发布时间】:2013-02-22 08:29:53
【问题描述】:
我有自己的 Spring Batch Job (MyTaskletJob),它实现了我的接口 IJobBase,它实现了 Tasklet,
我的工作需要什么来实现另一个名为 rollBack
的方法公共接口 IJobBase 扩展 Tasklet{
void rollBack();
}
公共类MyTaskletJob IJobBase{
public RepeatStatus execute(StepContribution arg0, ChunkContext arg1){
…}
public void rollBack(){
…}
}
Spring 配置:
<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()方法
【问题讨论】:
标签: spring spring-batch