什麼是一個SQLAlchemy的 + sqlite的項目中使用fork()
的最佳方式?SQLAlchemy的,SQLite和fork()的
的SQLAlchemy的文件mentions一個應該叫在孩子create_engine()
但沒有提到任何其他注意事項,其中我相信有很多(寫鎖,busy_timeout,配置/連接問題,等等)。
設計問題是否使用事務或範圍會話很重要?
什麼是一個SQLAlchemy的 + sqlite的項目中使用fork()
的最佳方式?SQLAlchemy的,SQLite和fork()的
的SQLAlchemy的文件mentions一個應該叫在孩子create_engine()
但沒有提到任何其他注意事項,其中我相信有很多(寫鎖,busy_timeout,配置/連接問題,等等)。
設計問題是否使用事務或範圍會話很重要?
SQLite不支持寫入併發性,因此只有一個客戶端可以在任何時間點寫入單個數據庫。有了這個約束條件,您從交易中獲得的唯一收益就是能夠回滾它們。如果您打算使用多個數據庫,請確保您不會陷入死鎖,其中兩個進程在一個數據庫中保存事務性寫鎖,並嘗試在另一個數據庫中同時獲取一個鎖。
sqlite將爲您處理所有的數據庫鎖定;這不是您在數據庫連接的客戶端可以或應該考慮的事情。
直到事情出錯,就是這樣。 – MarioVilas