[Errno 8] nodename nor servname provided, or not known

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解析的时候发生,仅仅会发生一次。

猜你喜欢

转载自blog.csdn.net/qq_21514303/article/details/81391427