条件分支
更新时间:2024-08-16
条件分支
模板是由多个任务构成的有向无环图(directed acyclic graph,简称DAG),你可以在DAG中构造分支,并通过上游任务的执行结果,选择执行哪一条分支。
一个示例模板如下所示:
JSON
1{
2 "operators": [
3 {
4 // 根据该任务的输出决定分支
5 "name": "上游任务",
6 "operator": "BCE::CallAPI",
7 },
8 {
9 // 通过内置任务'BCE::SwitchTo'定义条件分支
10 "name": "分支选择",
11 "operator": "BCE::SwitchTo",
12 "properties": {
13 "switch": [
14 {
15 "case": {"Ref": "success"},
16 "next": "分支1",
17 },
18 {
19 "case": {"Fn::Not": {"Ref": "success"}},
20 "next": "分支2",
21 },
22 ],
23 "default": "分支1",
24 }
25 },
26 {
27 // 下游分支1
28 "name": "分支1",
29 },
30 {
31 // 下游分支2
32 "name": "分支2",
33 },
34 {
35 // 分支合并后的任务
36 "name": "分支合并",
37 },
38 ],
39 "links": [
40 {"src": "上游任务", "dst": "分支选择"},
41 {"src": "分支选择", "dst": "分支1"},
42 {"src": "分支选择", "dst": "分支2"},
43 {"src": "分支1", "dst": "分支合并"},
44 {"src": "分支2", "dst": "分支合并"},
45 ]
46}
构建的模板如下所示:
若"上游任务"输出success=true
,则会运行分支1,分支2会被跳过(state=SKIPPED),执行结束后的状态如下图所示: