相关疑难解决方法(0)

Python请求的异步请求

我尝试了python请求库文档中提供的示例:

http://docs.python-requests.org/en/latest/user/advanced/#asynchronous-requests

async.map(rs)我得到的响应代码,但我想请求每一页的内容.

out = async.map(rs)
print out[0].content
Run Code Online (Sandbox Code Playgroud)

例如,只是不工作.

python asynchronous httprequest python-requests

128
推荐指数
10
解决办法
21万
查看次数

使用gevent访问外部http服务时出现间歇性问题

首先,版本:

  • gevent - v0.13.7
  • gunicorn - v0.14.2
  • 请求 - 0.11.2

我们最近升级了在gunicorn后面运行的服务器,以使用gevent异步工作程序而不仅仅是普通的同步工作程序.一切都很好,但我们现在遇到一个问题,试图通过http访问第三方服务,我只是不知道如何追踪可能是什么问题.

简短的堆栈跟踪如下所示:

File "/home/deploy/.virtualenvs/bapp/lib/python2.7/site-packages/requests/sessions.py", line 295, in post
  return self.request('post', url, data=data, **kwargs)
File "/home/deploy/.virtualenvs/bapp/lib/python2.7/site-packages/requests/sessions.py", line 252, in request
  r.send(prefetch=prefetch)
File "/home/deploy/.virtualenvs/bapp/lib/python2.7/site-packages/requests/models.py", line 625, in send
  raise ConnectionError(sockerr)
ConnectionError: [Errno 66] unknown
Run Code Online (Sandbox Code Playgroud)

另一个不同的堆栈跟踪但我们认为它是同一个问题:

File "/home/deploy/.virtualenvs/bapp/lib/python2.7/site-packages/requests/packages/urllib3/connectionpool.py", line 94, in connect
  sock = socket.create_connection((self.host, self.port), self.timeout)
File "/home/deploy/.virtualenvs/bapp/lib/python2.7/site-packages/gevent/socket.py", line 637, in create_connection
  for res in getaddrinfo(host, port, 0, SOCK_STREAM):
File "/home/deploy/.virtualenvs/bapp/lib/python2.7/site-packages/gevent/socket.py", line 769, in getaddrinfo
  raise
DNSError: [Errno 66] unknown
Run Code Online (Sandbox Code Playgroud)

起初,我以为这可能是潜在的东西相关的libevent-dns …

python exception gevent gunicorn python-requests

8
推荐指数
1
解决办法
1155
查看次数