作业依赖案例
需求:JobA 和 JobB 执行完了,才能执行 JobC
具体步骤:
1)新建second.flow 为如下内容
nodes:
- name: jobC
type: command
# jobC 依赖 JobA 和 JobB
dependsOn:
- jobA
- jobB
config:
command: echo "I’m JobC"
- name: jobA
type: command
config:
command: echo "I’m JobA"
- name: jobB
type: command
config:
command: echo "I’m JobB"
注意好格式
(1)dependsOn:作业依赖,后面案例中演示
2)将修改后的 second.flow 和 second.project 压缩成 second.zip 文件
3)重复 HelloWorld 后续步骤
注意:再次启动azkaban时,需要激活executor
最后看结果
自动失败重试案例
需求:如果执行任务失败,需要重试 3 次,重试的时间间隔 10000ms
具体步骤:
1)编译配置流
nodes:
- name: JobA
type: command
config:
command: sh /not_exists.sh
retries: 3
retry.backoff: 10000
command的意思是 执行根目录下的 not_exists.sh 文件
参数说明:
retries:重试次数
retry.backoff:重试的时间间隔
2)将修改后的third.flow 和 third.project 压缩成 third.zip 文件
3)重复 HelloWorld 后续步骤。
4)执行并观察到一次失败+三次重试
5)也可以在 Flow 全局配置中添加任务失败重试配置,此时重试配置会应用到所有 Job。
案例如下:
config:
retries: 3
retry.backoff: 10000
nodes:
- name: JobA
type: command
config:
command: sh /not_exists.sh
手动失败重试案例
需求:JobA=>JobB(依赖于 A)=>JobC=>JobD=>JobE=>JobF。生产环境,任何 Job 都
有可能挂掉,可以根据需求执行想要执行的 Job。
具体步骤:
1)编译配置流
nodes:
- name: JobA
type: command
config:
command: echo "This is JobA."
- name: JobB
type: command
dependsOn:
- JobA
config:
command: echo "This is JobB."
- name: JobC
type: command
dependsOn:
- JobB
config:
command: echo "This is JobC."
- name: JobD
type: command
dependsOn:
- JobC
config:
command: echo "This is JobD."
- name: JobE
type: command
dependsOn:
- JobD
config:
command: echo "This is JobE."
- name: JobF
type: command
dependsOn:
- JobE
config:
command: echo "This is JobF."
2)将修改后的 four.flow 和 four.project 压缩成 fourth.zip 文件
3)重复 HelloWorld 后续步骤。
当出现失败的时候,点击如下图位置
Enable 和 Disable 下面都分别有如下参数:
Parents:该作业的上一个任务
Ancestors:该作业前的所有任务
Children:该作业后的一个任务
Descendents:该作业后的所有任务
Enable All:所有的任务