【问题标题】:How to start specific spring batch job with command line如何使用命令行启动特定的春季批处理作业
【发布时间】:2018-12-08 03:03:08
【问题描述】:

我的 Spring Boot 应用程序中有两个已配置的作业。我想手动触发作业,使用 docker-compose.yml 中的命令来触发它。首先,我在 application.yml 中禁用了 batch.job.enabled 属性:

batch:
   initialize-schema: always
   job:
      enabled: false

我禁用它是为了不允许 Spring 在应用程序启动时执行我的作业。

我正在尝试使用 docker 测试我的作业,因此在我的 docker-compose.yml 中,我在我的应用程序服务上设置了这个命令,以便在我的容器启动时执行:

command: java -jar batch-application-1.0-SNAPSHOT.jar -Dspring.batch.job.names=uploadToS3Job date=2018-06-26 type=MyType

此命令使用作业参数日期和类型运行 uploadToS3Job

当我使用docker-compose up --build 运行我的应用程序时,spring 应用程序运行顺利,但作业没有执行,什么都没有发生,没有崩溃,什么都没有。

但如果我将此属性设置为 true:

job:
   enabled: true

然后在我的 docker-compose.yml 中使用相同的命令再次运行 docker-compose up,这两个作业都被执行了。

我真的不知道该怎么做,我只想使用我将在 docker-compose 中传递的命令执行具有特定作业参数的特定作业。

这个命令有什么问题:

command: java -jar batch-application-1.0-SNAPSHOT.jar -Dspring.batch.job.names=uploadToS3Job date=2018-06-26 type=MyType

或者我做错了什么?

【问题讨论】:

  • 试试--spring.batch.job.names=uploadToS3Job
  • 非常感谢,这正是我需要做的。
  • 请把它作为一个有效的答案

标签: spring docker spring-boot docker-compose spring-batch


【解决方案1】:

试试

--spring.batch.job.names=uploadToS3Job

【讨论】:

  • 你能补充一些解释吗?
  • 我将 docker-compose.yml 文件中的命令从 -Dspring.batch.job.names=uploadToS3Job 更改为 --spring.batch.job.names=uploadToS3Job 并且它可以工作。我正在使用弹簧靴>2.xx
猜你喜欢
  • 1970-01-01
  • 2020-04-23
  • 1970-01-01
  • 2017-10-06
  • 1970-01-01
  • 2019-01-28
  • 1970-01-01
  • 1970-01-01
  • 2018-10-04
相关资源
最近更新 更多