python - 停止烧瓶或 gunicorn 打印到控制台
问题描述
我问了一个类似的问题,但我没有得到任何帮助。本质上,我有一个烧瓶应用程序,它使用 gunicorn 作为 wsgi 和 nginx 作为网络服务器。出于某种原因,当我通过单独的 python 脚本(并且只有这个脚本,常规浏览器请求不会这样做)发送发布请求时,服务器会将请求标头打印到控制台。问题在于,正如我所知道的,当我没有与服务器烧瓶/gunicorn 的 ssh 连接时(我不确定哪个实际在打印它)没有控制台可以打印。这会导致 500 内部服务器错误。当连接关闭时,我显然不能每 30 分钟不断地重新连接到服务器。我查看了 gunicorns 的文档,并且(通过我的研究)发现没有提到是什么原因造成的。这让我相信烧瓶是罪魁祸首,尽管我不能确定。输出看起来像这样
Host: [domain].com
X-Real-Ip: [my ip address]
X-Forwarded-For: [my ip address]
X-Forwarded-Proto: https
Connection: close
Content-Length: 18910
User-Agent: python-requests/2.25.1
Accept-Encoding: gzip, deflate
Accept: */*
Content-Type: application/x-www-form-urlencoded
Cookie: session=[session cookie]
任何帮助将不胜感激。谢谢!
解决方案
简单的事情,在发送请求之前,通过使用ping确保您的服务器已启动。
如果 ping 响应成功,则发出 post 请求。否则 post call 会以异常结束,异常会导致像你这样的进一步请求的意外结果。
在这种情况下使用生成器,因为它不会给其他进程的执行带来麻烦。
如果需要发出定期请求,您最好使用 python 调度来运行任务。
推荐阅读
- android - React-Native 系统找不到指定的文件
- docker - openshift中pod经常崩溃
- python - 自定义函数适用于整个数据帧,但不适用于 Python 中的分组数据帧(与“groupby”函数一起应用)
- javascript - 无法使用 JavaScript 迭代从选择中删除选项?
- node.js - 无法使用护照和谷歌 oauth 策略进入谷歌登录页面
- kdb - 根据KDB中每天设定的间隔数对每一行进行分类?
- javascript - 如何在javascript中生成url
- c++ - 如何修复此错误(将 wchar_t 转换为 BSTR)?
- node.js - 如何显示消息?
- python - scipy 遇到的一个奇怪的错误,有什么想法吗?