Spring batch 未使用Spring批处理跳过策略
我在项目中使用以下设置来定义作业 在项目中,批处理作业在数据库中定义。下面的xml作业定义用作在运行时创建所有这些批处理作业的模板 这可以正常工作,除非数据处理器中出现BeanCreationException。发生此异常时,将从不调用跳过策略,而批处理将立即结束 原因可能是什么?为了使数据处理器中的每个异常都使用SkipPolicy,我必须做什么? 提前多谢 基督教徒 版本:spring batch 3.0.7Spring batch 未使用Spring批处理跳过策略,spring-batch,Spring Batch,我在项目中使用以下设置来定义作业 在项目中,批处理作业在数据库中定义。下面的xml作业定义用作在运行时创建所有这些批处理作业的模板 这可以正常工作,除非数据处理器中出现BeanCreationException。发生此异常时,将从不调用跳过策略,而批处理将立即结束 原因可能是什么?为了使数据处理器中的每个异常都使用SkipPolicy,我必须做什么? 提前多谢 基督教徒 版本:spring batch 3.0.7 <batch:job id="MassenGevoJob" r
<batch:job id="MassenGevoJob" restartable="true">
<batch:step id="selectDataStep" parent="selectForMassenGeVoStep" next="executeProcessorStep" />
<batch:step id="executeProcessorStep"
allow-start-if-complete="true" next="decideExitStatus" >
<batch:tasklet>
<batch:chunk reader="dataReader" processor="dataProcessor"
writer="dataItemWriter" commit-interval="10"
skip-policy="batchSkipPolicy">
</batch:chunk>
<batch:listeners>
<batch:listener ref="batchItemListener" />
<batch:listener ref="batchSkipListener" />
<batch:listener ref="batchChunkListener" />
</batch:listeners>
</batch:tasklet>
</batch:step>
<batch:decision decider="failOnPendingObjectsDecider"
id="decideExitStatus">
<batch:fail on="FAILED_PENDING_OBJECTS" exit-code="FAILED_PENDING_OBJECTS" />
<batch:next on="*" to="endFlowStep" />
</batch:decision>
<batch:step id="endFlowStep">
<batch:tasklet ref="noopTasklet"></batch:tasklet>
</batch:step>
<batch:validator ref="batchParameterValidator" />
<batch:listeners>
<batch:listener ref="batchJobListener" />
</batch:listeners>
</batch:job>
ABeanCreationException
实际上是不可跳过的,因为它通常发生在Spring批处理开始之前。这通常也是应用程序的致命错误(Spring无法创建您定义为对应用程序至关重要的组件)。如果这个bean的创建有问题并且没有问题,我建议在工厂中包装它的创建,这样您就可以控制创建这个bean时产生的任何异常。例如,如果您无法创建自定义的项目处理器
,您的FactoryBean
可以返回直通处理器
,如果可以的话。谢谢您的回答。我的问题不够精确。当dataProcessor尝试使用无效的构造函数参数applicationContext.getBean(…)实例化bean时,以及在应用程序成功启动之后,会发生bean创建异常。在这种情况下,我期待着我过去被称为“永远的基普政策”,但事实并非如此。步骤立即结束。。。