【问题标题】:How can i define a spring batch cloud task based on a specific batch job如何根据特定的批处理作业定义 Spring 批处理云任务
【发布时间】:2018-06-02 02:27:17
【问题描述】:

我们目前正在将一个复杂的 Spring Boot 批处理 + 管理 UI 系统迁移到一个 spring-cloud-task 基础架构中,该基础架构将由 Cloud Data Flow 进行管理。

作为 POC 的第一阶段,我们必须仍然能够将所有 Spring 批处理作业打包在同一个部署 JAR 下,并能够使用自定义作业参数逐个运行它们,并支持某种 REST API 来执行作业/远程任务。

我们删除了所有 spring-batch 管理依赖项并添加了 spring-cloud-starter-task

我们还将引导应用程序改编为 Spring Cloud Task 编程模型。

在 Spring Cloud 数据流上注册 JAR 后,我们无法定义一个任务,该任务将仅触发具有自定义参数的特定作业。

阅读官方文档和 stackOverFlow 问题没有任何更有希望的结果。

10 倍

【问题讨论】:

    标签: spring-boot spring-batch spring-cloud-dataflow


    【解决方案1】:

    为了完成你想做的事情,有两个步骤:

    1. 将批处理作业重新打包到 Spring Boot über jar 中。这应该很简单。
    2. 为要运行的每个作业创建任务定义。创建 über jar 并使用 Spring Cloud Data Flow 注册后,您需要创建作业定义。每个定义如下所示,其中 über jar 包含一个名为 fooJob 的批处理作业和一个名为 barJob 的批处理作业:

    dataflow:> app register --name batchJobs --type task --uri <URI to über jar> dataflow:> task create --name fooBatchJob --definition "batchJobs --spring.batch.job.names=fooJob" dataflow:> task create --name barBatchJob --definition "batchJobs --spring.batch.job.names=barJob"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-23
      • 1970-01-01
      • 2018-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多