我正在嘗試測試連接失敗,但不幸的是,如果主機的IP地址被防火牆覆蓋,則不會失敗。Python DBAPI超時連接?
這是代碼:
def get_connection(self, conn_data):
rtu, hst, prt, usr, pwd, db = conn_data
try:
self.conn = pgdb.connect(host=hst+":"+prt, user=usr, password=pwd, database=db)
self.cur = self.conn.cursor()
return True
except pgdb.Error as e:
logger.exception("Error trying to connect to the server.")
return False
if self.get_connection(conn_data):
# Do stuff here:
如果我嘗試連接到一個已知的服務器,但給不正確的用戶名,將觸發異常和故障。
但是,如果我嘗試連接到一臺機器不響應(防火牆),它永遠不會被傳遞self.conn = pgdb.connect()
如何我等待或測試超時,而不是讓我的應用程序似乎掛起當用戶輸入錯誤一個IP地址?
拼寫/語法納茲時間:Pythobn - > Python,防火牆 - >防火牆。哦,看起來,最後一行並沒有被四個空格縮進。 – 2010-03-01 11:36:23