ruby中的数据库连接池

Nik*_*koi 7 ruby sinatra

我刚开始使用Ruby,我正在玩Sinatra,但找不到在请求之间共享数据库连接的方法.

我来自Java web developpement,你要做的一件事就是集中数据库连接,所以我确信Ruby中存在类似的东西,但我找不到它.

ActiveRecord和DataMapper提供此功能,但我不需要ORM,只想进行常规SQL查询.

Sinatra是否有一些特定的方法,或者所有基于Rack的应用程序都有通用的方法?

Rob*_*t K 5

要保持连接,您只需创建一个实例变量(Sinatra Applications只是对象)或全局变量.或者是一个为您管理连接的类.我见过的大多数Ruby数据库都是数据库适配器或只是客户端.

@db = Mysql2::Client.new #...
Run Code Online (Sandbox Code Playgroud)

或全局变量:

$db = Mysql2::Client.new #...
Run Code Online (Sandbox Code Playgroud)

连接池只是在应用程序生命周期内跨多个线程/光纤共享少量连接的一种方法.就我所知,Java,JVM并不共享进程之间的连接.

但是,Ruby有一个通用的连接池库.