2015-05-06 26 views
0

Django使用MySQL後端來模擬「鎖定超時」DatabaseError的最簡單方法是什麼?如何在MySQL上使用Django來模擬「鎖定超時」錯誤

我有一段代碼,即工作在大的查詢集,偶爾會拋出異常:

DatabaseError: (1205, 'Lock wait timeout exceeded; try restarting transaction') 

我明白是什麼原因導致這個問題以及如何解決它,但我不知道如何測試我的修復程序,因爲錯誤只發生在多個用戶同時訪問某些表的生產環境中。

我第一次嘗試在一個單獨的進程中運行some sample code,使Django的應用MySQL中的鎖,而它似乎鎖定目標表,並讓所有其他請求等待,鎖定超時從來沒有當我測試上出現我的本地主機與runserver。我讓它運行20分鐘而不發生超時。

回答

0

如果你只需要有一個特定類型的異常,爲什麼不在測試中模擬/ monkeypatch你的代碼拋出這個exeption而不是從數據庫中獲取?

相關問題