python2.7
gevent
使用gevent 协程发起http请求
使用python自带的DNS标准库,
经常出现错误
[Errno 8] nodename nor servname provided, or not known
查了一些文章,在大量并发下DNS解析会出问题。
解决方法:不使用python的DNS解析标准库,使用gevent内置的取代标准库的DNS解析模块.
(如下的patch_all()会实行时候,gevent会帮我们替换掉一系列标准库。)
from gevent import monkey;monkey.patch_all()
至此,[Errno 8] nodename nor servname provided, or not known的问题仅仅会在第一次DNS解析的时候发生,仅仅会发生一次。