【发布时间】: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