ruby – 数据库连接池
我在Sinatra中创建了一个小聊天应用程序,在heroku上创建了jQuery.它只是在用户提交时将消息插入数据库.并且还每2秒下载一次新消息.经过几分钟的测试后,它停止工作,我收到了一封heroku的电子邮件:
这是支持提交消息的动作(接收非常相似): post '/send' do con = con = PGconn.connect($dbhost,5432,"",$dbname,$dbuser,$dbpass) con.exec("insert into messages(usr,msg,date) values('#{params[:usr]}','#{params[:msg]}',now())") end 我该如何更改它以启用连接池? 解决方法
是的,这是真的,每次发送’发送’后,你真的打开一个新的数据库连接.
所以你需要改变它.一种可能性是,在全球范围内打开连接: $con = PGconn.connect($dbhost,$dbpass) 这应该在初始化$dbname …变量之后但在使用任何路由之前完成. 但是,如果您使用的是模块化的sinatra版本,而不是经典版本,则可以使用声明实例变量 attr_accessor :con 并在应用程序启动之前初始化它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |