我正在使用 Python Gevent 的流服务器与另一台发送并发 TCP/IP 请求(平均 60 个请求/秒)的机器(远程)进行通信。这种通信的本质主要是 IO 绑定(短文本,然后是音频流)。我打算使用 Postgresql 来存储每次通信的结果(例如:从远程服务器接收到的文件名)。
我认为为Streamserver中产生的每个greenlet调用一个新的数据库连接是个坏主意(池大小90所以最大90请求/秒,这是我期望的最大值和平均60请求/秒)。是否有可能有可以排队的数据库连接池,并且在开始运行处理程序函数时每个greenlet都从池中获取数据库连接?有没有适用于生产系统的教程?你会怎么建议?我在 Ubuntu 10.04 64 位上使用 gevent 0.13.8 和 postgres 9.1 和 Python 2.7.3。