读者看起来像这样,
<bean id="cvsFileItemReader" class="org.springframework.batch.item.file.FlatFileItemReader" scope="step">
<property name="resource" value="classpath:cvs/input/report.csv" />
<property name="lineMapper">
<bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
<property name="lineTokenizer">
<bean
class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
<property name="names" value="id,impressions" />
</bean>
</property>
<property name="fieldSetMapper">
<bean
class="org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper">
<property name="prototypeBeanName" value="report" />
</bean>
</property>
</bean>
</property>
</bean>
我要实现的是,如果在阅读CSV文件时,读者/作业失败,那么下一个计划的JobInstance应该从上次的Jobexecution中启动读者。我可以跟踪CustomProcessor Process()函数中计数器处理的行。
但是,如何从上一个执行失败状态中读取CSV文件?
我想手动启动/重新启动失败的作业。我应该如下所述实现skippolicy http://thisisurl.com/spring-batch-skip-and-retry?
(CSV文件也可以是一个大的DB,但是现在我正在CSV文件上测试此情况)
如果您的应用程序失败,则可以使用:
但是,如何从上一个执行失败状态中读取CSV文件?
将其添加到批处理表 batch_job_execution_params 的JobParameters。
在应用程序启动时,在 batch_job_execution中查找不完整的作业并重新启动手动。
我想手动启动/重新启动失败的作业。我应该如下所述实现skippolicy http://thisisurl.com/spring-batch-skip-and-retry?
我认为这不是必需的。
如果要在CSV中重新启动一些行,只需使用retrypolicy:
<batch:step id="processing-step">
<batch:tasklet>
<batch:chunk reader="csv_reader"
processor="csv_processor"
writer="csv_writer"
commit-interval="5">
<batch:retry-policy>
<bean class="org.springframework.retry.policy.AlwaysRetryPolicy" scope="step"/>
</batch:retry-policy>
</batch:chunk>
</batch:tasklet>
</batch:step>
春季批处理自动处理失败的块(块,其中抛出异常)。文档。