我對數據庫相對比較陌生。我確信這是經驗會回答的問題。用SQLAlchemy處理事務衝突
我在PostgreSQL中使用SQLAlchemy。我有一個系統設置多個進程分佈在多臺計算機上執行各種任務,然後更新數據庫。我在測試中還沒有遇到任何交易衝突,但它們在理論上仍然可能。
從我在Google上能找到的信息來看,我要麼必須獲取數據庫的鎖定,要麼準備重新啓動事務。遺憾的是,有關如何實際上做到這個寶貴的小信息。
我認爲,要重新啓動事務,SQLAlchemy拋出一些異常,我的代碼必須捕獲並執行重試本身。如果我違反唯一性約束,指出我的代碼中存在與事務衝突相對的錯誤,那麼該異常是否會與SQLA不同?我會更好地使用數據庫鎖嗎?
在此先感謝!
- 編輯 -
我剛剛學會了 「ConcurrentModificationError」。名字肯定聽起來像我正在尋找的懷疑。 The documentation表示它是StaleDataError的別名,它的名字聽起來不錯,但其文檔非常不透明。這是我正在尋找的錯誤嗎?
再次,非常感謝!