簡體   English   中英

Django如何在DatabaseError后重新連接:查詢超時

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM