我的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
此命令使用作业参数date和type运行
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 - 如何使用命令行启动特定的Spring Batch作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51092898/