为ApacheAirflow提供了一个强大的、django风格的基于类的DAG语法。
airflow-workflows的Python项目详细描述
工作流
工作流是使用django启发的基于类的语法实现dags的更简洁的方法。
简单示例
让我们创建一个单独的Airflow DAG,它的名称是类名的camelcased版本,并且它的运算符依赖项是按照定义它们的顺序定义的。
有一个选项可以覆盖默认的^{
importworkflowsclassExampleWorkflow(workflows.Workflow):classMeta:schedule_interval='0 9 * * *'do_something_useful=workflows.PythonOperator(python_callable=lambda**kwargs:print('something useful'),)something_else=workflows.PythonOperator(python_callable=lambda**kwargs:print('Something not useful'),)globals()[ExampleWorkflow.DAG.dag_id]=ExampleWorkflow.DAG
动态DAG示例
让我们创建(在本例中是三个)dag,动态创建并基于上面实现的ExampleWorkflow
类。换句话说,它们将共享相同的dag元数据(在本例中为schedule)。
importworkflowsworkflow_names=['Test1','Test2','Test3',]forworkflowinworkflow_names:WorkflowClass=workflows.create_workflow(workflow,base=ExampleWorkflow,)globals()[WorkflowClass.DAG.dag_id]=WorkflowClass.DAG