使用 Data Flow 创建和启动组合任务

在前面的章节中,我们使用了两个应用程序

  • billsetuptaskbillsetuptaskbillrun 应用程序配置数据库。
  • billrunbillrun 从文件中读取使用信息,并为使用文件中的每个条目生成账单记录。

之前,我们手动依次运行了 billsetuptask 应用程序和 billrun 应用程序。这对于我们需要连续运行两个应用程序并且第一个应用程序在几秒钟内运行的小型案例来说当然可行。但是,如果需要按顺序运行五个、十个、二十个甚至更多个应用程序,并且某些应用程序的运行时间可能长达数小时,该怎么办?
此外,如果其中一个应用程序返回非零退出代码(即,它以某种错误结束),我们该怎么办?Spring Cloud Data Flow 通过使用组合任务为这个问题提供了解决方案。
组合任务是一个有向图,其中图的每个节点都是一个任务应用程序。对于我们在前面的示例中使用的两个应用程序(billsetuptaskbillrun),该图如下所示: 账单运行组合任务

在本节中,我们将展示如何使用 Spring Cloud Data Flow 的 UI 创建组合任务,然后将组合任务启动到 Cloud Foundry、Kubernetes 和本地机器。

先决条件

在开始本示例之前,您需要:

  1. 安装 Spring Cloud Data Flow。
  2. 安装本项目中使用的 Spring Cloud Task 项目。

Data Flow 安装

您必须已将 Spring Cloud Data Flow 安装到以下平台之一:

注册计费应用程序

对于本指南,您需要在 Spring Cloud Data Flow 中注册 billsetuptaskbillrun 应用程序。

创建组合任务

创建组合任务

  1. 从左侧导航栏中选择 任务
  2. 选择 创建任务。此时将显示任务创建视图: 创建组合任务 这将显示一个图形编辑器,您可以使用它来组合任务。初始画布包含 STARTEND 节点。在画布的左侧,您可以看到可用的任务应用程序,包括 billsetuptaskbillrun 应用程序。
  3. billsetuptask 应用程序拖动到画布。
  4. 将 START 节点连接到 billsetuptask
  5. billrun 应用程序拖动到画布。
  6. billsetuptask 应用程序连接到 billrun 应用程序
  7. billrun 应用程序连接到 END 节点以完成组合任务定义。在这种情况下,组合任务定义包含两个任务应用程序(billsetuptaskbillrun)。如果存在应用程序定义的配置属性,我们将在此处设置它们。

Bill Run Composed Task

  1. 单击 创建任务。这将提示您命名任务定义,该定义是我们想要部署的运行时配置的逻辑名称。在这种情况下,我们使用与任务应用程序相同的名称,即 ct-statement。此时将显示任务确认视图: 确认创建任务
  2. 点击创建任务。这样做会显示主要的任务视图。

提示:要查看可以使用组合任务图执行的所有操作,请参阅参考文档的组合任务部分

启动任务

当我们返回任务列表(如下图所示)时,我们可以看到我们现在有三个任务定义

View the tasks

我们看到在我们创建 ct-statement 任务时创建了以下三个任务定义

  • ct-statement:此定义表示运行组合任务图中的任务的组合任务运行器。
  • ct-statement-billsetuptask:此定义表示正在运行的 billsetuptask 应用程序。
  • ct-statement-billrun:此定义表示要运行的 billrun 应用程序。

现在我们可以通过单击 ct-statement 行左侧的下拉菜单并选择启动选项来启动 ct-statement,如下所示: 启动任务 这样做会将您带到一个表单,您可以在其中添加命令行参数和部署参数,但我们不需要为这个组合任务添加任何参数。点击启动任务按钮。

这样做会在数据流服务器的任务平台上运行组合任务运行器,该平台管理组合任务图的执行。

提示:如果需要多次运行组合任务,则需要为每次启动将 increment-instance-enabled 属性设置为 true

验证结果

执行完成后,每个任务定义的状态都会变为绿色,并显示 COMPLETE.。您可以选择“任务执行”选项卡(如下图所示)来查看此任务的执行摘要。

Task executions

删除组合任务

如前所示,组合任务会为图形中的每个应用程序创建一个定义。要删除作为组合任务一部分创建的所有定义,我们可以删除组合任务运行程序定义。为此,请执行以下操作

  1. 单击 ct-statement 行左侧的下拉菜单,然后选择“销毁”选项

    Destroy Composed Task

  2. 此时会弹出一个对话框,要求您 确认销毁任务。单击“销毁任务”按钮。执行此操作将删除构成 ct-statement 组合任务的定义。