前言背景
笔者使用的是最新的airflow作为测试!版本为1.10.12,公司用的生产是比这个版本低了3个小版本,所以引入ExternalTaskMarker报错,如果有相似的小伙伴,可以自行搭建一个airflow,进行测试或者升级你的airflow。
有个调度需求,查询以前历史DAG发现,有一个DAG可以作为我新调度的前置,所以想看看DAG之间task如何关联,所以有了下面的Demo。
如果会科学上网,英语听力还不错的,可以移驾这里,这个大佬讲的会更到位!(点击我!!)
原理
DAG A和DAG B是两个不同py文件写的,我A中一个task是我B中一个task的依赖,只有当A执行完了,我的B才能执行,那么该如何做呢,那么就应该安排一个监工的,看着A中指定task是否执行成功,执行成功那就监工就可以撤了,让B中的那个任务开始执行。
Master.py
vim master.py
from datetime import datetime, timedelta
from airflow import DAG
from airflow.operators.bash_operator import BashOperator
from airflow.utils.dates import days_ago
from airflow.sensors.external_task_sensor import ExternalTaskMarker, ExternalTaskSensor
default_args={
"owner": "airflow",
"start_date"