airflow - 气流 504 网关超时
问题描述
很多时候,当我尝试在 UI 中打开某些 DAG 的树视图或任务持续时间页面时,我收到错误:504 网关超时。有时在那之后我什至无法打开包含 DAG 列表的页面。你知道这个问题可能来自哪里吗?
运行 Airflow 的机器的 CPU 和内存似乎很好,我使用 RDS 作为元数据。
谢谢!
解决方案
我以前也经历过这种情况。我相信它是由一个 HTTP 请求引起的,该请求比网络服务器的 gunicorn worker 需要更长的时间来完成。例如,如果您将 DAG 树视图设置为较高的设置,例如针对具有大量任务的 DAG 运行 365 DAG,您可能能够一致地重现此情况。
您可以尝试提高网络服务器上的超时设置,看看是否有影响吗?
- 首先,尝试
web_server_worker_timeout
在组下增加(默认 = 120 秒)[webserver]
。 - 如果这不能解决它,您也可以尝试
web_server_master_timeout
在同一组下增加。 - 另一种尝试的技术是将网络服务器
worker_class
(默认 =sync
)切换到eventlet
orgevent
。
请注意,替代工作人员类需要安装 Airflow 以及以下async
附加功能:
pip install apache-airflow[async]
您可以在此问题中找到有关 gunicorn worker 超时的更多信息:How to resolve the gunicorn critical worker timeout error?.
推荐阅读
- python - 在 EC2 实例 (AWS) 上使用 Bash 脚本导入错误加载模块
- javascript - Json 到 Javascript 对象数组
- javascript - 使用模块和 vuex-persistedstate 持久化 Vuex 状态
- python - Matplotlib 'ValueError: x 和 y 必须具有相同的第一维,但具有形状 (20,) 和 (1,)'
- c# - C# UserControl 取决于它所在的表单 - WinForms
- javascript - Ajax List 是错误的,只显示数据库中所有数据的 5 个数据?
- flutter - 使用带有 RaisedButton onPressed() 的异步函数将对象传递给另一个路由
- javascript - ReferenceError: format is not defined 连接 Firebase 上传文件时
- javascript - React - 未处理的拒绝(TypeError):无法读取未定义的属性“城市”
- linux - 如何杀死所有正在运行的作业,然后使已停止的作业正在运行?