想要在Airflow中使用TriggerDagRunOperator来通过仅使用带有bashoperator的Main-dag(sub-dag运算符)来触发许多sub-dag

时间:2019-09-18 17:34:00

标签: python-3.x airflow-operator

使用TriggerDagRunOperator无法理解气流中有效载荷的概念。请帮助我以一种非常简单的方式来理解该术语。

1 个答案:

答案 0 :(得分:0)

TriggerDagRunOperator触发指定dag_id的DAG运行。这需要一个类型为trigger_dag_id的{​​{1}}和一个python_callable参数,它是对python函数的引用,该函数在传递string对象和占位符对象context时将被调用如果您要创建DagRun,则可调用的填充并返回。这个obj对象包含一个obj run_id 属性,您可以在函数中对其进行修改。

payload应该是该DAG运行的唯一标识符,并且有效载荷必须是可拾取对象,该对象可用于您的任务在执行该DAG运行时。您的函数标头应类似于run_id

可拾取只是意味着它可以由pickle模块进行序列化。有关此内容的基本知识,请参见what can be pickled and unpickled?pickle protocol提供了更多详细信息,并显示了类如何自定义流程。

参考:https://github.com/apache/airflow/blob/d313d8d24b1969be9154b555dd91466a2489e1c7/airflow/operators/dagrun_operator.py#L37