我的后端运行在openshift上,并通过kubernetes python客户端向其他openshift集群发出get请求。我有一个问题,请求挂起,直到达到默认超时值。我在pod中做了一些测试,看看它是否可以到达其他openshift集群,发现如下:requests.get("some_other_cluster_api_url")
将挂起并在2分钟内正确返回,但requests.get("some_other_cluster_api_url", timeout=1)
将在1秒内正确返回。为什么在第一种情况下请求没有立即返回?
Edit: curl也会立即返回正确的响应
根据此Timeout Doc,在第一种情况下,您没有设置任何超时值。默认情况下,除非显式设置超时值,否则请求不会超时。如果没有超时,您的代码可能会挂起几分钟或更长时间。
在第二种情况下,您已将超时值设置为1,它仅在1秒内返回响应。
例如:
If you specify a single value for the timeout, like this: r = requests.get('https://github.com', timeout=5)
然后在5秒内返回响应。
有关超时请求的更多信息和用法,请参阅此Doc和SO。