我正在 Pyramid 框架上构建一个应用程序,并希望将 web2py-DAL 与它一起使用。Firebird-embedded 是首选的数据库。
在我尝试从一个网页异步调用多个视图之前,这非常有效。kinterbasdb 驱动程序会出现不同的错误,例如“无效的游标状态”、“无效的游标引用”或“尝试重新关闭关闭的游标”,其中 sqlite 只是在没有任何错误消息的情况下发生故障并使用 python。这些视图可调用对象只是通过 SELECTing 进行简单读取。
这种情况发生在金字塔根工厂为每个请求返回相同的 DAL 对象的情况下。似乎来自不同请求的线程正在使用相同的游标对象,因此游标被关闭,而另一个线程假定游标在这里。
如果我在每个请求上创建一个新的 DAL 对象,我会遇到另一个问题——每个请求上的每个新连接都会分配内存,而这个内存不会被释放。因此,在一些文档请求之后,有数百 MB 的内存被浪费了。
不幸的是,Sqlalchemy 不是这个项目的选择。
有什么想法吗?