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