spring - 如何使用命令行启动特定的Spring Batch作业

标签 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

此命令使用作业参数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/

相关文章:

java - Spring Data ElasticSearch (7.9.3) 将字段添加到现有索引

java - Spring JMS 无法连接到 JBoss EAP 7.1 ActiveMq Artemis

docker - 装入的LVM卷未传递到容器

docker - 使用 Jenkins Blue Ocean 部署构建

docker - 如何从Docker Hub获得用于开放自由镜像的稳定版本?

java - 无法访问 spring boot 执行器的/beans

java - 使用 aspectJ 在 spring 中记录异常?

spring-boot - 获取(Set-Cookie)的值存入浏览器angular 8

spring-boot - 在 Spring Boot 中使用 Jackson 反序列化 java.time.ZoneId

java - 如何使用hibernate在spring boot的fillAll方法中添加where条件