24

我正在尝试使用气流来定义我想从命令行手动触发的特定工作流程。

我创建了 DAG 并添加了一堆任务。

dag = airflow.DAG(
    "DAG_NAME",
    start_date=datetime(2015, 1, 1),
    schedule_interval=None,
    default_args=args)

然后我在终端运行

airflow trigger_dag DAG_NAME

什么也没有发生。调度程序正在另一个线程中运行。任何方向都非常感谢。谢谢你

4

5 回答 5

37

我刚刚遇到了同样的问题。

假设您能够在 Web 服务器中airflow list_dags或通过 Web 服务器看到您的 dag,则:

我不仅必须在 Web UI 中打开 dag,而且还必须确保它airflow scheduler作为一个单独的进程运行。

一旦我运行了调度程序,我就能够使用成功执行我的 dagairflow trigger_dag <dag_id>

我的 dag 配置与您的配置没有太大区别。我也有schedule_interval=None

于 2016-09-13T21:34:15.207 回答
10

您可能已禁用工作流程。手动启用工作流。通过以下方式打开气流网络服务器

$ airflow webserver -p 8080

转到http://localhost:8080。您应该会看到所有可用 dag 的列表,并带有一个打开/关闭的切换按钮。默认情况下,一切都设置为关闭。搜索您的 dag 并切换您的工作流程。现在尝试从终端触发工作流。它现在应该可以工作了。

于 2016-06-29T11:01:47.620 回答
6

首先确保气流上的数据库连接字符串正常工作,天气它在 postgres、sqlite(默认情况下)或任何其他数据库上。然后运行命令

 airflow initdb

此命令不应显示任何连接错误

其次,确保您的网络服务器在单独的线程上运行

airflow webserver

然后在不同的线程上运行你的 schdeuler

airflow scheduler

最后在调度程序运行后在不同的线程上触发你的 dag

airflow trigger_dag dag_id

还要确保 dag 名称和任务存在于 dag 和任务列表中

airflow list_dags
airflow list_tasks dag_id

如果 dag 在您的 UI 中关闭,则将其打开。

于 2017-06-08T09:07:01.103 回答
1

您应该“取消暂停”拖动您要触发的内容。使用airflow unpause xxx_drag然后airflow trigger_dag xxx_drag它应该可以工作。

于 2019-03-22T10:31:33.873 回答
-1

气流 trigger_dag -e <execution_date> <dag_id>

于 2021-07-08T20:08:08.570 回答