Azkaban中预置了几个特殊的判断条件,称之为预定义宏
预定义宏会根据所有父Job的完成情况进行判断,再决定是否执行。可用的预定义宏如下
1. all_success: 表示父Job全部成功菜执行(默认)
2.all_done: 表示父Job全部完成才执行.
3.all_failed: 表示父Job全部失败才执行
4.one_success: 表示父Job至少一个成功菜执行
5.one_failed: 表示父Job至少一个失败才执行
案例
-
需求
1.JobA执行一个shell脚本
2.JobB执行一个shell脚本
3.JobC执行一个shel脚本。要求JobA、JobB中有一个成功即可执行
代码
JobA.sh
#!/bin/bash
echo "do JobA"
JobC.sh
#!/bin/bash
echo "do JobC"
macro.flow
nodes:
- name: JobA
type: command
config:
command: sh JobA.sh
- name: JobB
type: command
config:
command: sh JobB.sh
- name: JobC
type: command
dependsOn:
- JobA
- JobB
config:
command: sh JobC.sh
condition: one_success