数据库连接在红宝石池(database connection pooling in ruby)

2019-07-31 01:43发布

我刚开始使用Ruby和我与西纳特拉玩,但无法找到一个方法来共享请求之间的数据库连接。

我从Java网络发展论坛来了,你所要做的基本事情之一是集中数据库的连接,所以我相信,类似的事情在Ruby中存在,但我无法找到它。

ActiveRecord的和DataMapper的提供此功能,但我不需要ORM,只是想定期SQL查询。

是否有一些西纳特拉具体做法或没有针对所有基于机架应用程序的一般方法?

Answer 1:

要坚持一个连接,你只需要创建一个实例变量(Sinatra的应用只是对象反正)或全局变量。 或者说,为您管理连接的一类。 我见过的最Ruby的数据库库数据库适配器或只是客户端。

@db = Mysql2::Client.new #...

或一个全局变量:

$db = Mysql2::Client.new #...

连接池仅仅是共享少数几个对于应用的寿命在多个线程/纤维连接的一种方式。 Java中,JVM,据我所知不会共享进程之间的连接。

然而,有一个通用的Ruby连接池库 。



文章来源: database connection pooling in ruby
标签: ruby sinatra