Python SQLAlchemy并发和查询
我有许多独立的机器,每个机器都使用一个单独的Python SQLAlchemy并发和查询,python,sqlalchemy,Python,Sqlalchemy,我有许多独立的机器,每个机器都使用一个单独的 Session=scoped\u 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的新行(假
Session=scoped\u 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”之前无法在查询中找到它;如果您在处理线程方面做了更多的工作,您可能希望重构代码,为所有线程使用单个作用域_session
实例,或者直接使用sessionmaker
的结果,而不包装它,再次为所有线程使用一个,然后调用session()
用于每个线程。您运行的隔离级别是什么?