【问题标题】:Airflow DAG Run triggered, but never executed?Airflow DAG Run 已触发,但从未执行?
【发布时间】:2020-12-19 15:34:22
【问题描述】:

我发现自己处于手动触发 DAG Run(通过airflow trigger_dag datablocks_dag)运行的情况,并且 Dag Run 显示在界面中,但它随后永远保持“运行”状态而没有实际执行任何操作。

当我在 UI 中检查此 DAG Run 时,我看到以下内容:

我将start_date 设置为datetime(2016, 1, 1),并将schedule_interval 设置为@once我的阅读文档的理解是,由于start_date @once 确保它只发生一次。

我的日志文件说:

[2017-07-11 21:32:05,359] {jobs.py:343} DagFileProcessor0 INFO - Started process (PID=21217) to work on /home/alex/Desktop/datablocks/tests/.airflow/dags/datablocks_dag.py
[2017-07-11 21:32:05,359] {jobs.py:534} DagFileProcessor0 ERROR - Cannot use more than 1 thread when using sqlite. Setting max_threads to 1
[2017-07-11 21:32:05,365] {jobs.py:1525} DagFileProcessor0 INFO - Processing file /home/alex/Desktop/datablocks/tests/.airflow/dags/datablocks_dag.py for tasks to queue
[2017-07-11 21:32:05,365] {models.py:176} DagFileProcessor0 INFO - Filling up the DagBag from /home/alex/Desktop/datablocks/tests/.airflow/dags/datablocks_dag.py
[2017-07-11 21:32:05,703] {models.py:2048} DagFileProcessor0 WARNING - schedule_interval is used for <Task(BashOperator): foo>, though it has been deprecated as a task parameter, you need to specify it as a DAG parameter instead
[2017-07-11 21:32:05,703] {models.py:2048} DagFileProcessor0 WARNING - schedule_interval is used for <Task(BashOperator): foo2>, though it has been deprecated as a task parameter, you need to specify it as a DAG parameter instead
[2017-07-11 21:32:05,704] {jobs.py:1539} DagFileProcessor0 INFO - DAG(s) dict_keys(['example_branch_dop_operator_v3', 'latest_only', 'tutorial', 'example_http_operator', 'example_python_operator', 'example_bash_operator', 'example_branch_operator', 'example_trigger_target_dag', 'example_short_circuit_operator', 'example_passing_params_via_test_command', 'test_utils', 'example_subdag_operator', 'example_subdag_operator.section-1', 'example_subdag_operator.section-2', 'example_skip_dag', 'example_xcom', 'example_trigger_controller_dag', 'latest_only_with_trigger', 'datablocks_dag']) retrieved from /home/alex/Desktop/datablocks/tests/.airflow/dags/datablocks_dag.py
[2017-07-11 21:32:07,083] {models.py:3529} DagFileProcessor0 INFO - Creating ORM DAG for datablocks_dag
[2017-07-11 21:32:07,234] {models.py:331} DagFileProcessor0 INFO - Finding 'running' jobs without a recent heartbeat
[2017-07-11 21:32:07,234] {models.py:337} DagFileProcessor0 INFO - Failing jobs without heartbeat after 2017-07-11 21:27:07.234388
[2017-07-11 21:32:07,240] {jobs.py:351} DagFileProcessor0 INFO - Processing /home/alex/Desktop/datablocks/tests/.airflow/dags/datablocks_dag.py took 1.881 seconds

可能导致问题的原因是什么?

我是否误解了start_date 的运作方式?

或者日志文件中看似令人担忧的 schedule_interval WARNING 行可能是问题的根源?

【问题讨论】:

    标签: airflow apache-airflow


    【解决方案1】:

    问题是dag被暂停了。

    在您提供的屏幕截图中,在左上角,将其翻转为 On 即可。

    这是从气流开始时的常见“问题”。

    【讨论】:

    • 嗯。我正在运行airflow unpause datablocks_dag,然后是airflow trigger_dag datablocks_dag。也许我以错误的顺序运行它们?
    • 理论上应该可以正常工作。但是,在 UI 中我们可以看到 dag 仍然处于暂停状态。不知道为什么......手动取消暂停应该可以工作。
    • 我已经把调用的顺序颠倒了,现在它可以按预期工作了。
    • 哇。哇。 ? 谢谢。
    【解决方案2】:

    接受的答案是正确的。这个问题可以通过 UI 处理。

    另一种处理方式是使用配置。

    默认情况下,所有 dag 在创建时都会暂停。 可以在airflow.cfg查看默认配置

    # Are DAGs paused by default at creation
    dags_are_paused_at_creation = True
    

    打开标志将在下一次心跳后开始你的 dag。

    相关gitissue

    【讨论】:

      【解决方案3】:

      我有同样的问题,但它必须与depends_on_past 或wait_for_downstream

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-04-06
        • 1970-01-01
        • 2021-12-08
        • 1970-01-01
        • 1970-01-01
        • 2018-05-13
        • 2018-01-16
        相关资源
        最近更新 更多