繁体   English   中英

从终端触发气流 DAG 不起作用

[英]Triggering an Airflow DAG from terminal not working

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

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

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

然后我在终端中运行

airflow trigger_dag DAG_NAME

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

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

假设您能够在airflow list_dags或通过网络服务器看到您的 dag,那么:

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

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

我的 dag 配置与您的没有明显不同。 我也有schedule_interval=None

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

$ airflow webserver -p 8080

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

首先确保气流上的数据库连接字符串正常工作,天气它在 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 中关闭,则将其打开。

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

气流 trigger_dag -e <execution_date> <dag_id>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM