2017-12-19 2 views
0

는 사실은 내가 여러 단계 및 다음과 같은 두 개의 태스크 릿과 작업을 jave. 태스크 릿에 의해 삭제롤백 스프링 배치 작업

@Configuration 
@Import({BatchItemConfiguration.class, BatchCriticalComponentConfiguration.class}) 
public class BatchConfiguration { 

@Autowired 
private JobBuilderFactory jobBuilderFactory; 

@Autowired 
private Step stepCriticalComponent; 

@Autowired 
private Step stepItem; 

@Autowired 
private Step deleteAllItemStep; 

@Autowired 
private Step deleteAllCriticalComponentStep; 

@Bean 
public Job importJob(JobCompletionNotificationListener listener) { 
    return jobBuilderFactory.get("importJob") 
      .incrementer(new RunIdIncrementer()) 
      .listener(listener) 
      .start(deleteAllCriticalComponentStep) 
      .next(deleteAllItemStep) 
      .next(stepItem).next(stepCriticalComponent) 
      .build(); 
} 

} 단계 (stepItem 또는 stepCriticalComponent가) 실패 사실 경우

, 데이터는 사라지고 나는 그것을 복구 할 수 없습니다. 특정 작업/작업 릿 전에 전체 작업 또는 롤백에서 롤백을 수행 할 수 있습니까?

답변

0

스프링 배치 내에 전체 작업 또는 단계의 롤백 개념이 없습니다. 그러나 청취자 (JobExecutionListener 또는 StepExecutionListener)를 사용하여 수동으로 롤백을 수행하는 보상 논리를 실행할 수 있습니다.

관련 문제