[英]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.