2017-07-25 92 views
1

我有以下代碼;Python超時似乎沒有工作

def ip_addresses(): 
    # Get external ipv4 
    try: 
     response = urllib2.urlopen('http://icanhazip.com', timeout = 2) 
     out = response.read() 
     public_ipv4 = re.sub('\n', '', out) 
    except: 
     public_ipv4 = "failed to retrieve public_ipv4" 

在正常情況下,當接收到來自http://icanhazip.com響應時,輸出是這樣的;

[email protected]:/var/log$ date && tail -1 xxx.log 
Tue Jul 25 **07:43**:18 UTC 2017 {"public_ipv4": "208.185.193.131"}, "date": "2017-07-25 **07:43**:01.558242" 

因此,當前日期和日誌生成日期是相同的。 但是,當出現異常時,就會發生這種情況;

[email protected]:/var/log$ date && tail -1 xxx.log 
Tue Jul 25 **07:30**:25 UTC 2017 {"public_ipv4": "failed to retrieve public_ipv4"},"date": "2017-07-25 **07:23**:01.525444" 

爲什麼「超時」不起作用?

+0

是'日期&&尾-1 xxx.log'自動運行?因爲否則,時間差異有點不相關 – dhdavvie

+0

您可以記錄異常,看看發生了什麼事情:'除了異常作爲err:'和'public_ipv4 =「未能檢索public_ipv4;原因:」+ str(err)' – VPfB

+0

@dhdavvie:日期和尾部手動運行以檢查時間戳。如果時差超過5分鐘,則會在「Splunk」中導致向這些日誌饋送到的位置發出警報。 – linuxandunix

回答

0

嘗試獲取詳細的異常的詳細信息以這種方式 再調查什麼是錯誤一回事,及時 使用這種格式的區別...

import sys 
try: 
    1/0 
except: 
    print sys.exc_info()