我已经开发了一些类似于DAO的自定义类,以满足我的项目的一些非常特殊的要求,这是一个不在任何框架内运行的服务器端进程。
该解决方案非常有效,除了每次发出新请求时,我都会通过MySQLdb.connect打开一个新连接。
将其切换为在python中使用连接池的最佳“插入”解决方案是什么?我在想像Java的通用DBCP解决方案。
该过程运行很长时间,并且有许多线程需要发出请求,但不是所有线程都同时发出请求……特别是在短暂写入大量结果之前,它们做了很多工作。
编辑添加:经过更多搜索后,我发现anitpool.py看起来不错,但是由于我对python相对较新,我想我只是想确保我不会错过一个更明显/更惯用/更好的解决方案。
IMO的“更明显/更惯用/更好的解决方案”是使用现有的ORM,而不是发明类似DAO的类。
在我看来,ORM比“原始” SQL连接更受欢迎。为什么?因为Python 是 面向对象,并从SQL行映射到以对象 是 绝对必要的。在很多情况下,您会处理未映射到Python对象的SQL行。
我认为SQLAlchemy或SQLObject(以及关联的连接池)是更惯用的Pythonic解决方案。
作为独立功能的池化不是很常见,因为纯SQL(无对象映射)对于受益于连接池的复杂,运行时间长的进程并不普遍。是的,纯粹的SQL 被 使用,但它总是在池是没有帮助的简单或多个控制应用中使用。
我认为您可能有两种选择: