我们目前正在将复杂的Spring启动批处理管理UI系统迁移到一个Spring-cloud-task基础架构中,该架构将被管理为 Cloud 数据流 .
作为POC的第一阶段,我们必须能够将所有Spring批处理作业打包在同一部署JAR下,并能够使用自定义作业参数逐个运行它们,并支持某种REST API以远程执行作业/任务 .
我们删除了任何 spring 批处理管理员依赖项并添加了 spring-cloud-starter-task
我们还将启动应用程序改编为Spring Cloud Task编程模型 .
在Spring Cloud 数据流上注册JAR之后,我们无法定义只触发具有自定义参数的特定Job的任务 .
阅读官方文档和stackOverFlow问题没有任何更有希望的结果 .
10倍
1 回答
为了完成您要做的事情,有两个步骤:
在SpringBootüberjar中重新打包批处理作业 . 这应该是非常直接的 .
为要运行的每个作业创建任务定义 . 创建ü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"