Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring云数据流:任务的程序编排_Java_Kubernetes_Pipeline_Spring Cloud Dataflow - Fatal编程技术网

Java Spring云数据流:任务的程序编排

Java Spring云数据流:任务的程序编排,java,kubernetes,pipeline,spring-cloud-dataflow,Java,Kubernetes,Pipeline,Spring Cloud Dataflow,背景 我的Spring云数据流服务器作为一个Pod运行在Kubernetes中。我能够从仪表板启动任务。我希望开发一个更复杂、真实的任务管道用例 我不想使用SCDFUI仪表板,而是想从标准Java应用程序启动一系列任务。考虑以下任务管道: 任务1:从数据库中读取作为任务参数输入接收的唯一id的数据,并执行充实。浓缩后的记录被写回数据库。一个任务实例的执行负责处理一个唯一id 任务2:读取步骤1为作为任务参数输入接收的唯一id编写的丰富数据,并生成报告。一个任务实例的执行负责为一个唯一id生成报告

背景

我的Spring云数据流服务器作为一个Pod运行在Kubernetes中。我能够从仪表板启动任务。我希望开发一个更复杂、真实的任务管道用例

我不想使用SCDFUI仪表板,而是想从标准Java应用程序启动一系列任务。考虑以下任务管道:

任务1:从数据库中读取作为任务参数输入接收的唯一id的数据,并执行充实。浓缩后的记录被写回数据库。一个任务实例的执行负责处理一个唯一id

任务2:读取步骤1为作为任务参数输入接收的唯一id编写的丰富数据,并生成报告。一个任务实例的执行负责为一个唯一id生成报告

从上面的解释可以清楚地看出,任务1和任务2是连续的步骤。假设输入数据库包含50k个唯一ID。我想开发一个orchestrator Java程序,它可以启动任务1,限制为40。(即,在任何给定时间,任务1只能运行40个吊舱。任何为任务1启动更多吊舱的请求都应等待)。一旦通过Task1实例处理完所有50k唯一ID,只有这样才能启动Task2 POD

到目前为止我的发现

翻阅文档,我发现了一个名为。但是,示例显示了在shell/cmd窗口上触发的命令。我想做一些类似的事情,但不是打开一个数据流外壳程序,而是将参数传递给一个可以在内部启动任务的Java程序。这使我能够轻松地将我的应用程序与知道如何与Java代码集成的遗留代码集成(通过按需启动Java程序,启动一组任务并等待它们完成,或者通过调用Rest API)

问题

  • 如何使用Java而不是数据流外壳,通过Spring云数据流以编程方式按需启动任务?(是否有一个RESTAPI来实现这一点,或者在独立服务器上运行一个简单的Java程序也可以)
  • 如何以编程方式构建一个顺序管道,每个任务可以启动的POD数量有一个上限,并且具有依赖性,这样一个任务只能在前一个任务完成处理所有输入后启动
  • 请查看对任务的支持

    您将能够使用这个流畅风格的API,通过顺序/并行执行来编写任务的编排。[示例:
    .definition(“a:timestamp&&b:timestamp”)
    ]

    通过将其定义为Java代码,您将能够构建、启动或计划这些有向图的启动。我们看到许多客户采用这种方法进行E2E验收测试和部署自动化

    [加]


    此外,您还可以扩展的编程任务定义。

    这确实为我指明了正确的方向;但是,我无法再启动同一任务的多个实例。我在这上面贴了一个帖子。我很想听到你的意见。