2014-06-15 4 views
11

मैं इस तरह XML में एक चरण कॉन्फ़िगर जावा आधारित विन्यास के साथ वसंत बैच के लिए कक्षाएं:छोड़े जा सकने वाले अपवाद

<batch:step id="slaveStep"> 
     <batch:tasklet> 
      <batch:chunk 
        reader="reader" 
        processor="processor" 
        writer="writer" 
        commit-interval="10" 
        skip-limit="100000"> 
       <batch:skippable-exception-classes> 
        <batch:include class="MyException"/> 
       </batch:skippable-exception-classes> 
      </batch:chunk> 
     </batch:tasklet> 
    </batch:step> 

जावा विन्यास में मैं इस तरह एक StepBuilder का उपयोग करें:

@Bean 
public StepBuilder stepBuilder(String stepName) 
{ 
    return new StepBuilder(stepName); 
} 

@Bean 
Step slaveStep() 
{ 
    return stepBuilder("slaveStep") 
      .<Movie, Movie>chunk(10) 
      .reader(reader(new HashMap<>())) 
      .processor(processor()) 
      .writer(writer()) 
      .build(); 
} 

लेकिन मैं कर सकता छोड़ने योग्य अपवाद कक्षाओं को कॉन्फ़िगर करने का कोई तरीका नहीं मिला

उत्तर

20

आपको StepBuilder.faultTolerant विधि का उपयोग करके FaultTolerantStepBuilder बनाने की आवश्यकता है।

return stepBuilder() 
    .chunk() 
    .faultTolerant() 
    .skip(MyException.class) 
    .skipLimit(100000) 
.build() 
+0

इस के लिए धन्यवाद। क्या आप मुझे बता सकते हैं कि वह जानकारी कहां सूचीबद्ध है? मैंने वसंत दस्तावेज़ों में इसकी खोज की है और इसका कोई उल्लेख नहीं मिला। –

+2

http://docs.spring.io/spring-batch/trunk/apidocs/org/springframework/batch/core/step/builder/StepBuilder.html#chunk-org.springframework.batch.repeat.CompletionPolicy- और देखें http://docs.spring.io/spring-batch/trunk/apidocs/org/springframework/batch/core/step/builder/SimpleStepBuilder.html#faultTolerant--। लेकिन ईमानदारी से मुझे यह तरीका मिला, जबकि मैं एसबी कोड देख रहा था –

1
@Configuration 
@EnableBatchProcessing 
@Import(DataConfig.class) 
    public class SpringBatchConfig { 
    .................. 
    .................. 
    @Autowired 
    private StepBuilderFactory stepBuilders; 

    @Bean 
    public Step loadSlaveStep() 
     return stepBuilders.get("slaveStep")() 
     .chunk() 
     .faultTolerant() 
     .skip(MyException.class) 
     .skipLimit(100000) 
     .build() 
} 
संबंधित मुद्दे

 संबंधित मुद्दे