首页 > 解决方案 > 春季启动批处理到具有多个作业的春季云任务

问题描述

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

java -jar artifactName jobName param1

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

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

因此,阅读 Spring 文档了解,为了使用spring cloud dataflow server触发我的作业,可以定义一个任务,在这种情况下我应该将其用作cloudTask。但没有意义,因为将如何触发它,因为我的应用程序有 5 个不同的工作,所以问题是:

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

标签: springspring-bootspring-cloudspring-cloud-dataflowspring-cloud-task

解决方案


  1. 使用@EnableTask注释,您应该能够在 SCDF 中将批次注册为任务应用程序 - 在“应用程序”下
  2. 一旦您的批次出现在应用程序中,
    如果所有作业 5 个作业都是独立的,您应该能够创建 5 个具有相同应用程序名称但具有不同参数的不同组合任务,
    或者
    如果它们是相互关联的,则可以将链接的作业组合在一起 1 个组合任务,通过在 DSL 中提供别名并传递相应的参数集。
  3. 组合任务启动后,可以在“Task -> Executions”下查看任务执行状态,在“Jobs”下可以查看对应的 Jobs 状态

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


推荐阅读