Spring Boot批处理到具有多个作业的Spring Cloud任务

标签 spring spring-boot spring-cloud spring-cloud-dataflow spring-cloud-task

我有一个 Spring Boot 批处理应用程序,它有 5 个独特的作业,可以使用以下命令通过控制台执行:

java -jar artifactName jobName param1

但是现在这个项目将迁移到云端,所以我需要使用spring cloud task。到目前为止一切顺利。

我知道我必须在主类中定义 @enableTask 并在 application.properties 中定义属性: spring.application.name=cloudTask

因此,阅读Spring文档了解,为了使用spring云数据流服务器触发我的作业,可以定义一个任务,在本例中我应该将其用作cloudTask。但没有意义,因为如何触发它,因为我的应用程序有 5 个不同的作业,所以问题是:

如何将此任务名称与应用程序中定义的作业关联起来? 逻辑告诉我,我还需要定义 5 个任务名称,那么如何将这个任务名称与相应的作业绑定(bind)。

最佳答案

  1. 使用 @EnableTask 注释,您应该能够将批处理注册为 SCDF 中的任务应用程序 - 在“应用程序”下
  2. 当您的批处理出现在应用程序中后,
    如果所有作业 5 个作业都是独立的,您应该能够创建 5 个具有相同应用名称但具有不同参数的不同组合任务,

    如果这些是相互链接的,则可以通过在 DSL 中提供别名并传递相应的参数集,将链接的作业合并到 1 个组合任务中。
  3. 组合任务启动后,可以在“任务 -> 执行”下查看任务执行状态,并在“作业”下查看对应的作业状态

要将自定义参数传递给任务,可以利用@EnableConfigurationProperties @ConfigurationProperties

关于Spring Boot批处理到具有多个作业的Spring Cloud任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51959592/

相关文章:

java - Play框架+Spring : Injecting URL from application.conf

mysql - 在 JPA 中创建表时出现问题

java - Spring启动找不到HIBERNATE_SEQUENCE

spring - 基于 spring 配置文件设置 Sentry 属性

java - sql 文件中的 ScriptStatementFailedException

java - OpenShift:在应用程序长时间关闭期间,Pod 提前终止为 "not alive"

spring - JHipster OAuth2 服务器 -/oauth/authorize 的登录页面

java - Feign 将 301 作为异常处理

java - 使用SVN作为Spring Cloud Config服务器时出错

java - 带有正斜杠的假客户端 URL