如何根据特定批处理作业定义弹簧批处理云任务

问题描述 投票:0回答:1

我们目前正在将复杂的Spring启动批处理+管理UI系统迁移到将要管理云数据流的Spring-cloud-task基础架构中。

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

我们删除了任何弹簧批处理管理依赖项,并添加了spring-cloud-starter-task

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

在Spring云数据流上注册JAR之后,我们无法定义只触发具有自定义参数的特定Job的任务。

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

10倍

spring-boot spring-batch spring-cloud-dataflow
1个回答
2
投票

为了完成您要做的事情,有两个步骤:

  1. 在SpringBootüberjar中重新打包批处理作业。这应该是非常直接的。
  2. 为要运行的每个作业创建任务定义。创建überjar并在Spring Cloud Data Flow中注册后,您将需要创建作业定义。每个定义看起来类似于以下内容,其中überjar包含名为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"

© www.soinside.com 2019 - 2024. All rights reserved.