Taskletを実装するインターフェイスIJobBase を実装する独自の Spring Batch Job ( MyTaskletJob ) を持っています。
rollBackという別のメソッドを実装するために私の仕事に必要なもの
public interface IJobBase extends Tasklet {
void rollBack();
}
public class 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 = (ジョブ) applicationContext.getBean(“backgroundJob”);
// ジョブを実行 – jobLauncherはMyTaskletJob * execute * メソッドを実行します
JobExecution myJobExecution = jobLauncher.run(ジョブ, jobParameters);
// ExitStatus を確認します
If(myJobExecution.getExitStatus().equals(ExitStatus.FAILED)){
// MyTaskletJobでrollback()メソッド を実行する必要があります
私の質問は、JobExecution FAILED のときにメソッド rollback() メソッドを呼び出す方法です