2011-09-07 82 views
2

我正在使用mysql(5.1)ruby(1.8.7)連接器從數據庫中提取一些數據。有些查詢的運行時間比預期的要長,所以我想在這些設置上設置連接超時。由related post提出了一種解決方案是:使用Mysql設置連接超時Ruby

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 

然而,這似乎並沒有爲我工作。任何想法爲什麼以及如何完成我所追求的?謝謝。

回答

3

您可能必須在實際連接之前設置選項。

db = Mysql.init 
db.options(Mysql::OPT_READ_TIMEOUT, 10) 
db.real_connect('server', 'user', 'password', 'schema')