我的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
还是我做错了什么?
答案 0 :(得分:2)
尝试
--spring.batch.job.names=uploadToS3Job