首页 > 解决方案 > 我的后端通过 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)

我会非常感谢这里的任何帮助,谢谢。

标签: pythonflaskgunicorn

解决方案


我不清楚为什么我没有看到任何错误,但看起来有一个未处理的错误。我解决了这个问题,现在可以了。当我在本地运行时,我使用了一个稍微不同的配置,它没有遇到未处理的错误,所以这不是一个等价的场景。


推荐阅读