Python 在web2py请求周期中关闭和重新启动数据库连接
我的数据库是远程机器上的SQL Server,我遇到了相当多的延迟。 我在控制器中有一个方法,其结构如下:Python 在web2py请求周期中关闭和重新启动数据库连接,python,web2py,Python,Web2py,我的数据库是远程机器上的SQL Server,我遇到了相当多的延迟。 我在控制器中有一个方法,其结构如下: def submitData(): parameters = db.site.select(...) results = some_http_post() # posts data to remote server, if results: rec = db.status_table.insert(...) rec.status_t
def submitData():
parameters = db.site.select(...)
results = some_http_post() # posts data to remote server,
if results:
rec = db.status_table.insert(...)
rec.status_tabl.update(...)
通常会发生的情况是,一些\u http\u post()需要几秒钟才能得到响应,而我的线程就用完了
当我访问web2py时,有6个以上的并发提交数据请求,我遇到的是请求冻结,而不是数据库错误。
这会停止任何进一步的web2py请求
理想情况下,我希望在调用某个\uHTTP\uPOST之前关闭db连接,然后再启动另一个db连接,但我看不到使用DALAPI实现这一点的简单方法。这是可能的还是我可以尝试更好的优化?尝试启用连接池:默认情况下启用连接池 如果将“pool_size=0”添加到连接字符串中,则会禁用连接池,并且我假设该行为会强制打开/关闭每个连接,而不是让它们保持打开状态 如果你需要更多的线程(听起来像),增加你的池大小,看看会发生什么 或者,是的,您可以使用DAL并执行db.close()操作,然后在第一次请求时自动重新打开连接