2017-11-28 10 views
0

スプリングブートバッチXMLをJava Configに変換するには、以下のコードをJava Configに変更してください。SpringバッチXMLからJava Configに変換するタスクレット

<batch:job id="batchJob1"> 
    <batch:step id="step"> 
     <batch:tasklet task-executor="taskExecutor" throttle-limit="${throttle.limit}"> 
      <batch:chunk reader="synchronizedProvisionReader" 
        processor="compositeItemProcessor" writer="subWriter" 
        commit-interval="${commit.interval}" 
          skip-limit="${skip.limit}" 
          retry-limit="${retry.limit}"> 
       <batch:retryable-exception-classes> 
        <batch:include class="org.springframework.dao.TransientDataAccessException"/>       
       </batch:retryable-exception-classes> 
       <batch:retry-listeners> 
        <batch:listener ref="batchRetryListener"/> 
       </batch:retry-listeners> 
       <batch:streams> 
        <batch:stream ref="fileItemReader" />       
       </batch:streams> 
       <batch:listeners> 
        <batch:listener ref="dateListener" />       
       </batch:listeners> 

      </batch:chunk> 
     </batch:tasklet> 
     <batch:listeners> 
      <batch:listener ref="debugStepListener" /> 
      <batch:listener ref="skipCheckingListener"/> 
     </batch:listeners> 
    </batch:step> 
    <batch:listeners> 
     <batch:listener ref="batchProvisionJobListener" /> 
    </batch:listeners> 
</batch:job> 

私の最初の試みはタスクレットに止まってしまったので、このためのタスクレットの設定方法についてのアイデアは得られませんでした。

@Configuration 
@EnableBatchProcessing 
public class BatchJob { 

    @Autowired 
    private JobBuilderFactory jobs; 

    @Autowired 
    private StepBuilderFactory stepBuilderFactory; 

    @Autowired 
    @Qualifier("taskExecutor") 
    private ThreadPoolTaskExecutor taskExecutor; 

    @Value("${throttle.limit}") 
    private int throttleLimit; 


    @Bean 
    public Job batchProvision(){ 
     return jobs.get("batchJob1").start(provisionStep()).build(); 
    } 

    @Bean 
    public Step step(){ 
     return stepBuilderFactory.get("provisionStep").tasklet(); 
    }    
} 

私はあなたが正確に問題に直面しているかを理解することはできませんよ、私はXML

答えて

1

と同じようなJavaの設定でタスクを設定する方法をアドバイスしてください。 これはあなたの設定をXMLからjavaに変換する方法です。これは私がJavaの設定チャンクサイズで考える

@Bean 
    public ItemProcessor<POJO, POJO> myProcessor1() { 
     return new myProcessor1(); 
    } 

    @Bean 
    public ItemProcessor<POJO, POJO> myProcessor2() { 
     return new myProcessor2(); 
    } 

    @Bean 
    public ItemProcessor<POJO, POJO> myProcessor3() { 
     return new myProcessor3(); 
    } 

    @Bean 
    public CompositeItemProcessor<POJO, POJO> mYCompositeItemProcessor() { 
     CompositeItemProcessor<POJO, POJO> mYCompositeItemProcessor = new CompositeItemProcessor<>(); 
     List<ItemProcessor<POJO, POJO>> list = new ArrayList<>(); 
     list.add(myProcessor1()); 
     list.add(myProcessor2()); 
     list.add(myProcessor3());  
     mYCompositeItemProcessor.setDelegates(list); 
     return mYCompositeItemProcessor; 
    } 



    @Bean 
    public Job myJob(JobBuilderFactory jobs) throws Exception { 
     return jobs.get("myJob") 
       .start(step1()) 
       .build() 
       .listener(myjobListener) 
       .build(); 

    } 
    @Bean 
    public TaskExecutor taskExecutor() { 
     ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();  
     taskExecutor.setCorePoolSize(5); 
     taskExecutor.setMaxPoolSize(5); 
     taskExecutor.setQueueCapacity(5); 
     taskExecutor.afterPropertiesSet(); 
     return taskExecutor; 
    } 

    @Bean 
    public Step step1(StepBuilderFactory stepBuilderFactory,) { 
     return stepBuilderFactory.get("step1").listener(mYCompositeItemProcessor()) 
       .<POJO, POJO> chunk(50).listener(ChunkListenerbean) 
       .reader(temReaderbean).listener(ItemReadListener) 
       .processor(mYCompositeItemProcessor()).listener(ItemProcessListener) 
       .writer(writerBean).listener(ItemWriteListenerbean).listener(SkipListenerbean).faultTolerant() 
       .skip(Exception.class).skipLimit(10) 
       .taskExecutor(taskExecutor()) 
       .build(); 
    } 
+0

どのように私は設定することができますコミット間隔=「$ {commit.interval}」 –

+0

は何もありませんができますが、コミット・インターバルを願っています。 – Niraj

関連する問題