如何在Python Zope服务器中配置数据库连接池

时间:2013-12-27 10:15:17

标签: python mysql connection-pooling mysql-python zope

我开始增强用Python开发的应用程序。 Zope服务器已用于部署应用程序。

在许多模块中,DB连接已建立并用于DB事务,并且没有使用任何连接池机制。考虑到用户数量,很容易为每个请求建立数据库连接,这是一个糟糕的设计。

  

现在为了建立连接池,我该怎么办?我的应用程序   使用Python 2.4,Zope 2.11.4和MySQL 5.5。

Zope是否提供了实现它的任何方法,比如在外部文件中配置数据库,在Python代码中引用Zope从连接池中利用的连接?或者我是否需要以独立于服务器(Zope或其他)为Python提供MySQL模块的方式编写Python代码

1 个答案:

答案 0 :(得分:0)

我猜你已经提出了你的问题,但这不是不发表评论的理由。

1)长期答案:认真考虑构建迁移到ZODB而不是mysql的路径。 ZODB与Zope集成,并且比mysql更有效地存储Zope数据。您无法立即执行此操作,但可能您可以识别可以先迁移到ZODB的部分数据,然后通过“数据集群”执行此操作。

2)短期回答:我不知道你用什么库连接到mysql(它们没有很多),让我们说它是python-mysqldb,以及连接数据库的功能是连接。您可以编写自己的MySqlDB模块,并将其放在sys.path中的系统MySqlDB之前(必要时操作zope应用程序的sys.path),这样就可以调用模块而不是系统MySqlDB模块。在您的模块中,您编写一个Connect函数,该函数封装您的池逻辑并将其他所有内容代理到原始(系统)MySqlDB模块。

希望我对你或其他遇到同样问题的人都很清楚。