gpt4 book ai didi

mysql - 使用 sqlalchemy 和 pyro 进行 session 管理

转载 作者:行者123 更新时间:2023-11-29 03:06:29 26 4
gpt4 key购买 nike

我实际上是在使用 SQLAlchemy 与 MySQL 和 Pyro 来制作服务器程序。许多客户端连接到此服务器以发出请求。程序只提供MySQL数据库的信息,有时会做一些计算。

为每个客户创建一个 session 还是为每个客户使用相同的 session 更好?

最佳答案

你想要的是一个scoped_session .

好处是(与客户端之间的单个共享 session 相比):

  • 无需锁定
  • 支持的交易
  • 到数据库的连接池(由 SQLAlchemy 隐式完成)

如何使用它

您只需创建 scoped_session:

Session = scoped_session(some_factory)

并在你的 Pyro 方法中访问它:

class MyPyroObject():
def remote_method(self):
Session.query(MyModel).filter...

幕后花絮

上面的代码保证 session 根据需要创建和关闭。 session 对象会在您第一次在线程中访问它时创建,并在线程完成后被删除/关闭(ref)。由于每个 Pyro 客户端连接在默认设置下都有自己的线程(不要更改它!),每个客户端将有一个 session 。

关于mysql - 使用 sqlalchemy 和 pyro 进行 session 管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14334561/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com