gpt4 book ai didi

ruby - 如何使用 Ruby(无 RoR)保持 mysql 连接(mysql2 gem)

转载 作者:数据小太阳 更新时间:2023-10-29 08:39:36 26 4
gpt4 key购买 nike

我有一个使用 Rack 的非常简单的 Web 服务,没有 Rails,我将在每个有效连接上联系 MySQL。我想保持连接(例如在构造函数中),以便在每次请求时都重用它。让我们这样说:

  class Service

def initialize(dbhost, dbport, dbname, dbuser, dbpass)
@client = Mysql2::Client.new(
:host => dbhost,
:port => dbport,
:database => dbname,
:username => dbuser,
:password => dbpass)
end

def call(env)
# some logic that will call:
results = _query(sql)
end

def _query(sql)
results = @client.query(sql)
end

end

Rack::Handler::Mongrel.run Service.new(DB_HOST, DB_PORT, DB_NAME, DB_USER, DB_PASS), :Port => 8123

使用上面的代码,该服务将获得一个 MySQL 连接,并在每次请求时执行查询。但是我如何确保如果连接断开,_query 方法将重新连接?

最佳答案

好吧,:reconnect => true 似乎可以确保连接持续存在。

  @client = Mysql2::Client.new(
:host => dbhost,
:port => dbport,
:database => dbname,
:username => dbuser,
:password => dbpass,
:reconnect => true
)

关于ruby - 如何使用 Ruby(无 RoR)保持 mysql 连接(mysql2 gem),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13013748/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com