python - 我的后端通过 API 调用自身 - 与烧瓶网络服务器一起正常工作,与 gunicorn 一起挂起
问题描述
我的应用程序是一个为 SPA 前端反应应用程序提供服务的 Flask 后端。后端实际上由 2 层组成,称为 api 和 bff。这三个都从同一个进程运行。
前端调用 bff,有时会调用 api 层 - REST api 调用,而不是内部函数调用。例如,后端执行 requests.get(" http://localhost/api/foo ")。
当我使用烧瓶网络服务器在本地运行我的应用程序时,它工作得非常好。当我使用 gunicorn 在本地运行我的应用程序时,从前端到后端的调用工作正常,但后端对自身的调用却不行。
我不明白有什么不同。这是一个典型的打印输出;我的打印调试消息显示正在调用的 URL,然后是 30 秒后的 gunicorn 关键工人死亡消息。我注意到此时会话 cookie 实际上已被擦除,因此工作人员实际上正在死亡。为什么?!
http://localhost:5000/api/requests/
[2020-05-20 21:30:12 +0100] [769] [CRITICAL] WORKER TIMEOUT (pid:771)
我会非常感谢这里的任何帮助,谢谢。
解决方案
我不清楚为什么我没有看到任何错误,但看起来有一个未处理的错误。我解决了这个问题,现在可以了。当我在本地运行时,我使用了一个稍微不同的配置,它没有遇到未处理的错误,所以这不是一个等价的场景。
推荐阅读
- python - 使用 SQLAlchemy 和 Python 执行 SQL CTE
- react-native - 在 React Native 中使用异步存储计数器
- jquery - 如何在 jquery 的同一页面上检测页面重新加载时 url 参数值的变化?
- python - 从python中的给定数据集中提取一个值
- graphviz - Yosys——用verilog制作电子原理图
- python - 使用熊猫从字符串中删除所有字母数字单词
- flutter - 在颤振上存储 api 密钥的最佳方法是什么?
- java - Kafka Producer 注册 AppInfo mbean 时出错且未创建消息
- apache-spark - 在 Spark 中读取数据框中的 XML 列
- xamarin - Azure DevOps 管道构建错误:未为项目“MyProject.iOS.csproj”设置 OutputPath 属性。用于 Xamarin iOS 项目