[英]Django how to reconnect after DatabaseError: query timeout
我有一個獨立的腳本,可以使用Django ORM從Postgre中讀取/寫入。
我偶爾會收到此錯誤
DatabaseError:查詢超時服務器意外關閉了連接,這可能意味着服務器在處理請求之前或期間異常終止。
我需要重新建立連接並重試腳本中的處理代碼,但似乎找不到方法。 以下代碼在重試時引發“ InterfaceError:連接已關閉”,因此不起作用。
for repeat in range(5):
try:
.....................PROCESSING CODE...................
except DatabaseError, e:
time.sleep(30)
else:
break
else:
return
任何的想法?
我也有類似的需要重新創建數據庫連接,並且我正在嘗試以下黑魔法在django 1.3中重置連接:
from django.db import connection
connection.connection.close()
connection.connection = None
我沒有PostgreSQL可以方便地進行嘗試,但是它似乎至少適用於MySQL和sqlite。 另外,如果您使用的是多數據庫,則必須通過django.db.connections字典對特定連接執行此步驟。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.