超時後沒有終止在Python 2.4.4的urlopen調用,我使用urllib2.urlopen()
請求資源。發出請求之前,我設置了超時:與超時
socket.setdefaulttimeout(10)
(Python的這種版本太舊有內置的超時版本的urlopen()
)
在大多數情況下,這似乎工作正常。但是,我遇到了一個只能根據請求掛起的服務器。在Chrome瀏覽器中,瀏覽器放棄需要將近5分鐘,然後說:
谷歌瀏覽器無法加載網頁,因爲SERVERNAME花了很長時間迴應。該網站可能已關閉,或者您的Internet連接可能遇到問題。
在Python中,儘管設置了短暫超時,但urlopen
請求似乎無限期地掛起。究竟是什麼socket.setdefaulttimeout()
控制,是有沒有辦法強制執行這些連接的硬超時(如果在10秒的流逝,不管別人發生了什麼,終止嘗試的)?
我基本上做的是,在我的代碼。問題(和我的問題)是,以這種方式設置超時,即使,我碰到的情況下調用無限期掛起(早已過了超時值我設置)。我試圖找出如何這可能是,如果有一種方法,以保證用戶的通話總是儘快達到超時值失敗。 – jrdioko