我在Heroku上使用Sinatra和jQuery创建了一个小型聊天应用程序。当用户提交消息时,它会简单地将消息插入到数据库中,并且每2秒下载新的消息。经过几分钟的测试后,我收到了来自Heroku的一封邮件:
“你好,
我们注意到gisekchat应用程序连接到共享数据库的连接数量很多。出于性能原因,我们不得不限制共享数据库的连接数。您可以减少对共享数据库的总连接数,或者转移到专用数据库吗?
似乎您没有利用连接池,并为应用程序的每个请求打开了新的数据库连接。
谢谢, -Chris”
这是支持提交消息的操作(接收操作非常相似):
“你好,
我们注意到gisekchat应用程序连接到共享数据库的连接数量很多。出于性能原因,我们不得不限制共享数据库的连接数。您可以减少对共享数据库的总连接数,或者转移到专用数据库吗?
似乎您没有利用连接池,并为应用程序的每个请求打开了新的数据库连接。
谢谢, -Chris”
这是支持提交消息的操作(接收操作非常相似):
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
我该如何修改它以启用连接池?
get ... end
块,你将无法在get ... end
块内使用它。 - robustus