|
对于最新稳定版本,请使用Spring Boot 4.0.0! |
批量应用
当人们在Spring Boot应用中使用Spring Batch时,常常会有许多疑问。 本节将回答这些问题。
指定批处理数据源
默认情况下,批处理应用需要数据来源用来存储工作详情。
Spring Batch预计会有一首单曲数据来源默认。
让它使用数据来源除了应用程序的主体数据来源,宣告a数据来源豆子,注释其@Bean方法:@BatchDataSource.
如果你这样做并且想要两个数据源,记得标记另一个@Primary.
要获得更大的控制权,可以添加@EnableBatchProcessing给你的其中一位@Configuration类或扩展DefaultBatchConfiguration.
参见 API 文档@EnableBatchProcessing和DefaultBatchConfiguration更多细节请阅读。
有关春季批次的更多信息,请参见春季批次项目页面。
指定批处理事务管理器
类似于“指定批处理数据源”,你可以定义一个PlatformTransactionManager用于批量处理,标记为@BatchTransactionManager.
如果你这样做并且想要两个事务管理器,记得标记另一个为@Primary.
启动时运行春季批次作业
通过添加Spring靴启动批次进入你应用的类路径。
如果是单曲工作BEAN 出现在应用上下文中,启动时执行(参见JobLauncherApplicationRunner详情)。
如果是多个工作找到豆子后,必须用 来指定应执行的作业spring.batch.job.name.
要关闭运行工作在应用上下文中找到,设置spring.batch.job.enabled自false.
看批处理自动配置更多细节请阅读。
命令行运行
Spring Boot 会将任何以 为 的命令行参数转换为属性,以添加到--环境,参见访问命令行属性。
这不应用于向批处理作业传递参数。
要在命令行中指定批处理参数,请使用常规格式(即不含 ),如下示例所示:--
$ java -jar myapp.jar someParameter=someValue anotherParameter=anotherValue
如果你指定了 的性质环境在命令行中,作业会忽略它。
请考虑以下命令:
$ java -jar myapp.jar --server.port=7070 someParameter=someValue
这只为批处理作业提供了一个参数:someParameter=someValue.
重新启动已停止或失败的工作
重新开始失败的工作,所有参数(识别和非识别)都必须在命令行重新指定。
非标识参数不会从之前的执行中复制。
这使得它们可以被修改或移除。
当你使用自定义时JobParametersIncrementer你必须收集由递增器管理的所有参数,以重新启动失败的执行。 |