问题描述
我正在运行一个 Flask 应用程序,它在 UI 中有一个选项,用户可以在其中单击一个按钮并调用一个端点来执行一些分析。
应用程序如下:
from waitress import serve
serve(app,host="0.0.0.0",port=5000)
大约 1 分钟后,我在 UI 中收到网关超时: 504 Gatway Time-out
然而,flask 应用程序一直在做后面的工作,2 分钟后它完成了处理,我可以看到它在 db 端提交了数据。所以这个过程不会自己超时。
我已经尝试将 channel_timeout 参数传递给更高的值 (default seems 120 seconds) 但没有运气。我知道以不同的方式实现这是有意义的,用户不必等待这两分钟,但我正在寻找默认情况下是否设置了这样的超时以及是否可以增加。
应用部署在 K8s 中,UI 通过 ingress 暴露。超时可能来自入口吗?
解决方法
问题出在 ingress controller default timeout 上。
我设法通过更改实现并让此作业作为后台任务运行来解决此问题。