我想创建一个用Python编写的数据库应用程序编程接口,并使用SQLAlchemy(或任何其他数据库连接器(如果它被告知使用SQLAlchemy进行这种类型的任务不是最好的方式) 。该设置是在Linux或BSD上运行的MySQL服务器,以及在Linux或BSD计算机上运行的Python软件(无论是外部还是本地)。多线程使用SQLAlchemy
基本上我想要做的是为每个连接产生一个新的线程,并且该协议将是自定义且非常简单的,尽管对于每个请求我想打开一个新的事务(或者我读过的会话),然后我需要提交会话。我现在面临的问题是,另一个会话同时从另一个连接发生的可能性很大。
我在这里的问题是我应该怎么做来处理这种情况?
- 我是否应该使用锁定,以便只有一个会话可以同时运行?
- 会话是否实际上是线程安全的,我错误地认为它们不是?
- 有没有更好的方法来处理这种情况?
- 线程是不是要走的路?
这不是'session.remove()'? – 2014-11-09 14:18:39
@AllanRuin:如果通过'session'你提到的例子是'some_session',否则。 'session'对象没有'remove'方法。在这种情况下,'Session'是一个'scoped_session'对象。它的'remove'方法标识当前'session'并在放弃它之前调用它的'close'方法。解释[在文档](http://docs.sqlalchemy.org/en/latest/orm/contextual.html?高亮=作用域#sqlalchemy.orm.scoping.scoped_session.remove)。 – bfin 2015-05-29 21:19:50
已更新链接到文档:http://docs.sqlalchemy.org/en/latest/orm/contextual.html – Mahdi 2016-07-11 14:25:30