[英]SQLAlchemy Concurrency and Queries
我有很多單獨的機器,每個機器都使用一個單獨的實例
Session = scoped_session(sessionmaker(bind=engine))
。
如果機器A運行代碼
session = Session()
session.add(Foo(pk=1))
session.commit()
我必須做的是確保機器B運行以下代碼時...
session = Session()
result = session.query(Foo).get(1)
... result
將保留機器A創建的Foo
的新行(假定機器A的代碼先運行)。 在會話“ A”提交對象之前,我遇到了問題,但是在重新實例化會話“ B”之前,另一個會話“ B”無法在查詢中找到它。
scoped_session
將Session
包裝在線程本地存儲對象中; 如果您需要做更多的工作來處理線程,則可能需要重構代碼以對所有線程使用單個scoped_session
實例,或者直接將sessionmaker
的結果(不包裝它)再次用於所有線程,然后調用Session()
每個線程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.