我们有2个不同的节点运行不同的气流达标。
在一个节点中有一个controller_dag(应该触发目标dag的控制器),在另一个节点中有一个target_dag。
我们已经能够从同一节点中的controller_dags触发target_dags。
是否可以从另一个节点中的另一个controller_dag触发一个节点中的target_dag?
能否请您举个例子?
答案 0 :(得分:0)
我找到了自己问题的答案
是的,有可能从另一个节点中的另一个controller_dag触发一个节点中的target_dag。
示例:
# Create a python function to trigger a dag using airflow experimental api
def trigger_target_dag(airflow_host_url, **kwargs):
airflow_url = airflow_host_url + '/api/experimental/dags/target_dag/dag_runs'
r = requests.post(airflow_url,
data=json.dumps({'excution_date':datetime.utcnow().isoformat()})
)
# Call the function above using PythonOperator
trigger_target_dag_task = PythonOperator(
task_id = 'trigger_target_dag',
python_callable = trigger_target_dag,
op_kwargs = {'airflow_host_url': airflow_host_url},
dag = dag
)