您现在的位置是:首页 > 文章详情

Spring Batch 6.0.0-M2 发布

日期:2025-08-21点击:16

Spring Batch 6.0.0-M2 现已发布提供了以下功能和改进:

  • 依赖项升级
  • chunk-oriented 处理模型的新实现
  • 能够恢复突然失败的作业执行

有关完整的更改列表,可查看发行说明

Dependencies upgrade

在此里程碑版本中,Spring 依赖项升级到以下版本:

  • Spring Framework: 7.0.0-M8
  • Spring Integration: 7.0.0-M2
  • Spring AMQP: 4.0.0-M4
  • Spring Kafka: 4.0.0-M4
  • Spring Data: 4.0.0-M5
  • Spring Ldap: 4.0.0-M2
  • Micrometer: 1.16.0-M2

注意,此版本与 Java 17+ 兼容。

chunk-oriented 处理模型的新实现

这并非新功能,而是对 chunk-oriented 处理模型的全新增强实现。此新实现最初在 5.1 版本中作为实验性新增功能引入,现已在 6.0 版本中作为稳定版本提供。

ChunkOrientedStep类中提供了新的实现,它是ChunkOrientedTasklet/TaskletStep类的替代品。

下面是如何使用其构建器定义ChunkOrientedStep的示例:

 @Bean public Step chunkOrientedStep(JobRepository jobRepository, JdbcTransactionManager transactionManager, ItemReader<Person> itemReader, ItemProcessor<Person, Person> itemProcessor, ItemWriter<Person> itemWriter) { int chunkSize = 100; return new ChunkOrientedStepBuilder<Person, Person>(jobRepository, transactionManager, chunkSize) .reader(itemReader) .processor(itemProcessor) .writer(itemWriter) .build(); } 

此外,fault-tolerance 功能进行了如下调整:

  • 重试功能现在基于 Spring Framework 7 中引入的重试功能,而不是以前的 Spring Retry 库
  • 跳过功能已根据新实现略作调整,现在完全基于SkipPolicyinterface

以下是使用ChunkOrientedStep实现新功能的重试和跳过功能的简单示例:

 @Bean public Step faulTolerantChunkOrientedStep(JobRepository jobRepository, JdbcTransactionManager transactionManager, ItemReader<Person> itemReader, ItemProcessor<Person, Person> itemProcessor, ItemWriter<Person> itemWriter) { // retry policy configuration int maxAttempts = 10; var retrybaleExceptions = Set.of(TransientException.class); RetryPolicy retryPolicy = RetryPolicy.builder() .maxAttempts(maxAttempts) .includes(retrybaleExceptions) .build(); // skip policy configuration int skipLimit = 50; var skippableExceptions = Set.of(FlatFileParseException.class); SkipPolicy skipPolicy = new LimitCheckingItemSkipPolicy(skipLimit, skippableExceptions); // step configuration int chunkSize = 100; return new ChunkOrientedStepBuilder<Person, Person>(jobRepository, transactionManager, chunkSize) .reader(itemReader) .processor(itemProcessor) .writer(itemWriter) .faultTolerant() .retryPolicy(retryPolicy) .skipPolicy(skipPolicy) .build(); } 

有关如何从以前的实现迁移到新的实现的更多详细信息,可参阅迁移指南。

恢复失败的作业执行的能力

在 v6 之前,如果作业执行突然失败,除非手动更新数据库,否则无法恢复。这很容易出错,并且在不同的作业存储库之间不一致(因为对于 JDBC 数据库,它需要一些 SQL 语句,而对于 NoSQL 存储,则需要一些自定义语句)。

此里程碑版本引入了JobOperatorinterface 中的一个新方法recover,允许用户在所有作业存储库中一致地恢复失败的作业执行。

原文链接:https://www.oschina.net/news/367583/spring-batch-6-0-0-m2
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章