如何通过命令行启动特定的Spring Batch作业

时间:2018-06-29 00:51:43

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

我的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

还是我做错了什么?

1 个答案:

答案 0 :(得分:2)

尝试

--spring.batch.job.names=uploadToS3Job