使用 Data Flow 创建和启动组合任务
在前面的章节中,我们使用了两个应用程序
billsetuptask
:billsetuptask
为billrun
应用程序配置数据库。billrun
:billrun
从文件中读取使用信息,并为使用文件中的每个条目生成账单记录。
之前,我们手动依次运行了 billsetuptask
应用程序和 billrun
应用程序。这对于我们需要连续运行两个应用程序并且第一个应用程序在几秒钟内运行的小型案例来说当然可行。但是,如果需要按顺序运行五个、十个、二十个甚至更多个应用程序,并且某些应用程序的运行时间可能长达数小时,该怎么办?
此外,如果其中一个应用程序返回非零退出代码(即,它以某种错误结束),我们该怎么办?Spring Cloud Data Flow 通过使用组合任务为这个问题提供了解决方案。
组合任务是一个有向图,其中图的每个节点都是一个任务应用程序。对于我们在前面的示例中使用的两个应用程序(billsetuptask
和 billrun
),该图如下所示:
在本节中,我们将展示如何使用 Spring Cloud Data Flow 的 UI 创建组合任务,然后将组合任务启动到 Cloud Foundry、Kubernetes 和本地机器。
先决条件
在开始本示例之前,您需要:
- 安装 Spring Cloud Data Flow。
- 安装本项目中使用的 Spring Cloud Task 项目。
Data Flow 安装
您必须已将 Spring Cloud Data Flow 安装到以下平台之一:
注册计费应用程序
对于本指南,您需要在 Spring Cloud Data Flow 中注册 billsetuptask 和 billrun 应用程序。
创建组合任务
创建组合任务
- 从左侧导航栏中选择 任务。
- 选择 创建任务。此时将显示任务创建视图:
START
和END
节点。在画布的左侧,您可以看到可用的任务应用程序,包括billsetuptask
和billrun
应用程序。 - 将
billsetuptask
应用程序拖动到画布。 - 将 START 节点连接到
billsetuptask
。 - 将
billrun
应用程序拖动到画布。 - 将
billsetuptask
应用程序连接到billrun
应用程序 - 将
billrun
应用程序连接到 END 节点以完成组合任务定义。在这种情况下,组合任务定义包含两个任务应用程序(billsetuptask
和billrun
)。如果存在应用程序定义的配置属性,我们将在此处设置它们。
- 单击 创建任务。这将提示您命名任务定义,该定义是我们想要部署的运行时配置的逻辑名称。在这种情况下,我们使用与任务应用程序相同的名称,即
ct-statement
。此时将显示任务确认视图: - 点击创建任务。这样做会显示主要的任务视图。
提示:要查看可以使用组合任务图执行的所有操作,请参阅参考文档的组合任务部分。
启动任务
当我们返回任务列表(如下图所示)时,我们可以看到我们现在有三个任务定义
我们看到在我们创建 ct-statement 任务时创建了以下三个任务定义
ct-statement
:此定义表示运行组合任务图中的任务的组合任务运行器。ct-statement-billsetuptask
:此定义表示正在运行的billsetuptask
应用程序。ct-statement-billrun
:此定义表示要运行的billrun
应用程序。
现在我们可以通过单击 ct-statement
行左侧的下拉菜单并选择启动选项来启动 ct-statement
,如下所示:
这样做会在数据流服务器的任务平台上运行组合任务运行器,该平台管理组合任务图的执行。
提示:如果需要多次运行组合任务,则需要为每次启动将 increment-instance-enabled
属性设置为 true
。
验证结果
执行完成后,每个任务定义的状态都会变为绿色,并显示 COMPLETE.
。您可以选择“任务执行”选项卡(如下图所示)来查看此任务的执行摘要。
删除组合任务
如前所示,组合任务会为图形中的每个应用程序创建一个定义。要删除作为组合任务一部分创建的所有定义,我们可以删除组合任务运行程序定义。为此,请执行以下操作
-
单击
ct-statement
行左侧的下拉菜单,然后选择“销毁”选项 - 此时会弹出一个对话框,要求您
确认销毁任务
。单击“销毁任务”按钮。执行此操作将删除构成ct-statement
组合任务的定义。