Rob*_*rto 5 ruby ruby-on-rails
我正在尝试了解连接数据库的最佳方法.
目前我有一个解析URL的方法(取决于称为应用程序的URL必须连接到不同的数据库,如customer1.example.com将连接到customer1数据库)并调用
ActiveRecord::Base.establish_connection(conn_string)
Run Code Online (Sandbox Code Playgroud)
其中conn_string包含数据库的名称.
使用a调用此方法(set_db)
before_filter :set_db
Run Code Online (Sandbox Code Playgroud)
在我的应用程序控制器中,基本上对于我得到的每个请求,URL都被解析,应用程序尝试执行establish_connection.
我想知道我是否可以在某个地方建立连接池....你有什么建议吗?是否更好的是让Singleton保持所有连接并返回正确的连接?
谢谢!罗伯托
我不是 Ruby 程序员,但一般来说连接池是个好主意。您可以将该连接池设置为单例并分发/收回连接。池可以在收回连接后检查一切是否仍然正常。
每个连接应该有不同的生命周期和所有权,这样两个线程就不会同时使用一个连接。
请小心使用临时表,因为它们属于一个数据库会话。我们遇到了一个错误,在高负载情况下我们遇到了奇怪的错误。最后我们记得我们在应用程序中使用了临时表。在高负载情况下,数据库连接会中断,并由连接对象自动重新生成,而应用程序代码并不知道(我们已经实现了重新连接,但忘记了在这种情况下这是一个问题)。我们想要读取的临时表已经消失了。
归档时间: |
|
查看次数: |
1291 次 |
最近记录: |