2

データベースからデータを抽出するために、mysql (5.1) ruby​​ (1.8.7) コネクタを使用しています。一部のクエリは、必要以上に長く実行される傾向があるため、これらに接続タイムアウトを設定したいと思います。関連する投稿で提案された解決策は次のとおりです。

require 'rubygems'
require 'mysql'

# connect to the database
db = Mysql.real_connect( 'server', 'user', 'password', 'schema' )

# configure read timeout
db.options(Mysql::OPT_READ_TIMEOUT, 10)

# query and process
begin

  db.query("select * from ..").each_hash do |row|
    # process data if query returned 
  end

rescue Mysql::Error => err
  # handle timeout
end

しかし、これは私にはうまくいかないようです。私が求めていることを達成する理由と方法はありますか? ありがとう。

4

1 に答える 1

3

実際に接続する前に、オプションを設定する必要がある場合があります。

db = Mysql.init
db.options(Mysql::OPT_READ_TIMEOUT, 10)
db.real_connect( 'server', 'user', 'password', 'schema' )
于 2011-09-07T07:58:41.313 に答える