假设我正在用 Python 编写 HTTP 请求,但我的 DNS 服务器出现故障。
如果我尝试:
import requests
requests.get('https://api.twilio.com', timeout=3)
并且 DNS 服务器已关闭,这可能需要 90 秒以上,尽管指定了超时值。
此外,阻塞调用是 socket.getaddrinfo
,而且它看起来不像需要超时参数。
有没有办法在 DNS 查找上设置超时?
最佳答案
没有办法将超时传递给 getaddrinfo 系统调用,因为它不接受超时参数。您可以在一个线程中运行查找,然后在它过期时将其取消。
在 Unix 机器上,您可以将 /etc/resolv.conf
修改为 set a timeout for addrinfo lookups .
关于python - 将超时传递给 socket.getaddrinfo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26857922/