【问题标题】:DAG is not visible on Airflow UIDAG 在 Airflow UI 上不可见
【发布时间】:2020-06-11 15:29:29
【问题描述】:

这是我在dags 文件夹中的 dag 文件。

Code that goes along with the Airflow located at:
http://airflow.readthedocs.org/en/latest/tutorial.html
"""
from airflow import DAG
from airflow.operators.dummy_operator import DummyOperator
from airflow.operators.python_operator import PythonOperator
from datetime import datetime, timedelta
from work_file import Test


class Main(Test):
    def __init__(self):
        super(Test, self).__init__()

    def create_dag(self):
        default_args = {
            "owner": "airflow",
            "depends_on_past": False,
            "start_date": datetime(2015, 6, 1),
            "email": ["airflow@airflow.com"],
            "email_on_failure": False,
            "email_on_retry": False,
            "retries": 1,
            "retry_delay": timedelta(minutes=5),
            # 'queue': 'bash_queue',
            # 'pool': 'backfill',
            # 'priority_weight': 10,
            # 'end_date': datetime(2016, 1, 1),
        }
        dag = DAG("python_dag", default_args=default_args, schedule_interval='0 * * * *')

        dummy_task = DummyOperator(task_id='dummy_task', retries=3)

        python_task = PythonOperator(task_id='python_task', python_callable=self.my_func)

        dummy_task >> python_task


if __name__ == "__main__":
    a = Main()
    a.create_dag()

这是我的另一个文件 work_file.py,它位于同一个 dags 文件夹中。

class Test:
    def __init__(self):
        pass

    def my_func(self):
        return "Hello"

目标:-目标是从我的 dag 文件中调用my_func。

问题:- UI 上似乎没有错误,但我的 dag python_dag 不可见。

我的服务器,调度程序也在运行,我尝试重新启动,但没有任何反应。

我也导入了文件 (from work_file import Test)

提前致谢!

【问题讨论】:

    标签: airflow directed-acyclic-graphs airflow-scheduler


    【解决方案1】:

    DAG 存在多个问题:

    1. 运算符未分配给任何 DAG。将dag=dag 添加到构造函数中。例如,DummyOperator(..., dag=dag)。
    2. create_dag() 不返回 DAG。添加return dag。
    3. DAG 脚本不作为顶级代码执行。也就是说,模块__name__ 永远不会是'__main__'。删除if __name__ == "__main__":。
    4. DAG 对象必须位于模块的全局命名空间中。将create_dag() 的返回值赋给一个变量:dag = a.create_dag()。

    【讨论】:

      猜你喜欢
      • 2016-12-23
      • 2019-08-19
      • 1970-01-01
      • 2017-09-17
      • 1970-01-01
      • 1970-01-01
      • 2018-08-05
      • 2019-05-02
      • 2018-11-10
      相关资源
      最近更新 更多