Spring Boot and Batch:根据 application.properties 值停止批处理

Posted

技术标签:

【中文标题】Spring Boot and Batch:根据 application.properties 值停止批处理【英文标题】:Spring Boot and Batch: Stop batch from starting based on application.properties value 【发布时间】:2018-04-22 23:11:37 【问题描述】:

我有一个 Spring Boot 应用程序。当我的应用程序启动时,我必须为数据库播种。之后我就不需要再播种了。截至目前,我正在使用 Spring Batch 执行此操作。但是每当我启动我的应用程序(dev-test-redeploy)时,批处理就会开始。

有没有办法告诉 Spring Batch 基于变量什么都不做?我知道如何在任何需要的地方获取环境参数,只是不知道在 Spring Batch 设置中的哪个位置。

非常感谢任何帮助。

【问题讨论】:

***.com/questions/23447948/…: enabled=false 并以编程方式开始您的工作 @LucaBassoRicci 谢谢卢卡。这正是我正在寻找的。​​span> 【参考方案1】:

不确定您的完整设置是什么,但是否可以检查数据库(做一个简单的计数)以查看数据是否已经存在于您的 Step/TaskLet 实现中以根本不处理这些项目或您的读者/作家只是跳过这些项目?

如果您真的想使用配置属性,您可能需要查看将@ConditionalOnProperty 应用于您的批处理配置。 (虽然使用属性更容易出现人为错误,因为您需要记住在第二次启动应用程序时切换参数)。

【讨论】:

以上是关于Spring Boot and Batch:根据 application.properties 值停止批处理的主要内容,如果未能解决你的问题,请参考以下文章

在 Spring-boot 上将 Spring Batch 与 spring-batch-admin-manager 集成时出错

spring batch ftp 集成超时错误 - 使用 spring-boot/spring-batch 进行 ETL

spring-boot-starter-jta-atomikos 和 spring-boot-starter-batch

Spring boot spring.batch.job.enabled=false 无法识别

Spring boot spring.batch.job.enabled=false 无法识别

Maven 打包“JAR”不适用于 spring-boot-starter-batch