问题是春季批量版本3.0.7升至3.0.9

问题描述 投票:0回答:1

我正在使用Spring Batch框架开发一个Java项目,我必须将它从3.0.7版升级到3.0.9但是我有一个问题:

@Bean
public Step bonjourRetourJpaToX(StepBuilderFactory stepBuilderFactory, TaskExecutor taskExecutor,
        ItemProcessor<BonjourRetourGroup, BonjourElementBlocAgent> compBonjourRetourBonjourProcessor,
        @Qualifier("promotionListenerBonjourRetour") ExecutionContextPromotionListener promotionListenerBonjourRetour) {
    return stepBuilderFactory.get("bonjourRetourJpaToX").<BonjourRetourGroup, BonjourElementBlocAgent>chunk(batchSizeLoadXml)
            .reader(bonjourRetourJpaReader)
            .processor(compBonjourRetourBonjourProcessor)
            .writer(bonjourRetourXmlWriter)
            .taskExecutor(taskExecutor)
            .listener(promotionListenerBonjourRetour)
            .listener(dsBonjourRetourFinalProcessor())
            .listener(dsBonjourRetourTemporaryProcessor)
            .listener(bonjourRetourBonjourBoucleStepListener())
            .throttleLimit(bonjourRetourJobThrottleLimit)
            .build();
}

使用maven编译错误:

[错误] src / main / java / source / bonjourRetour / batch / BonjourRetourJobConfig.java:[1025,33]找不到符号符号:method throttleLimit(int)

这一步是多线程的

java maven spring-batch
1个回答
0
投票

对于Mahmoud Ben Hassine:

复合处理器 - >

@Scope(value = "step", proxyMode = ScopedProxyMode.NO)
@Bean(name = "compBonjourRetourBonjourProcessorX")
public ItemProcessor<BonjourRetourGroup, XElementBlocAgent> compBonjourRetourBonjourProcessorX(@Value("#{stepExecution}") final StepExecution stepExecution) {
    CompositeItemProcessor<BonjourRetourGroup, XElementBlocAgent> compositeProcessor = new CompositeItemProcessor<>();

    compositeProcessor
            .setDelegates(Arrays.asList(dsBonjourRetourXTemporaryProcessor, dsBonjourRetourXinalProcessor()));
    return compositeProcessor;
}

我注意到当我移动监听器时:bonjourRetourBonjourBoucleStepListener();就像它编译:

 @Bean
 public Step bonjourRetourJpaToX(StepBuilderFactory stepBuilderFactory, TaskExecutor 
 taskExecutor,
    ItemProcessor<BonjourRetourGroup, BonjourElementBlocAgent> compBonjourRetourBonjourProcessor,
    @Qualifier("promotionListenerBonjourRetour") ExecutionContextPromotionListener promotionListenerBonjourRetour) {
return stepBuilderFactory.get("bonjourRetourJpaToX").<BonjourRetourGroup, BonjourElementBlocAgent>chunk(batchSizeLoadXml)
        .reader(bonjourRetourJpaReader)
        .processor(compBonjourRetourBonjourProcessor)
        .writer(bonjourRetourXmlWriter)
        .taskExecutor(taskExecutor)
        .listener(promotionListenerBonjourRetour)
        .listener(dsBonjourRetourFinalProcessor())
        .listener(bonjourRetourBonjourBoucleStepListener())
        //SWITCHED
        .listener(dsBonjourRetourTemporaryProcessor)
        .throttleLimit(bonjourRetourJobThrottleLimit)
        .build();

我知道dsBonjourRetourTemporaryProcessor返回一个ItemProcessor并且bonjourRetourBonjourBoucleStepListener返回一个StepExecutionListener

对于我的项目的其他部分有这个问题,当我移动StepExecutionListener时,它的工作原理

也许问题出在这里?

© www.soinside.com 2019 - 2024. All rights reserved.