在Python 3.6.2中使用gevent和request的Gunicorn RecursionError

时间:2017-07-31 21:02:30

标签: python python-requests gunicorn gevent

我有一个简单的烧瓶脚本,它使用请求向第三方Web服务发出http请求。我在gunicorn中运行脚本的方式是

gunicorn abc:APP -b 0.0.0.0:8080 -w 4 -k gevent --timeout 30 --preload

然而,在我将代码升级到python 3.6.2之后,我仍然可以运行服务器,但每当网络服务器收到请求时,它都会显示

RecursionError: maximum recursion depth exceeded while calling a Python object

每个工作者,服务器似乎仍在运行。当我将运行命令更改为

gunicorn abc:APP -b 0.0.0.0:8080 -w 4 --timeout 30 --preload

这一切都有效。因此,在python 3.6.2中,gunicorn的异步工作者和请求有什么问题吗?有办法解决这个问题吗?

(这个问题也在https://github.com/benoitc/gunicorn/issues/1559

提出

1 个答案:

答案 0 :(得分:0)

请参阅https://github.com/benoitc/gunicorn/issues/1559。这可能会在下一版本的gunicorn中修复,但不幸的是,如果你不想打破gunicorn,你可能不得不继续使用python 3.5.2。