使用Mysql设置连接超时Ruby
问题描述:
我正在使用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
然而,这似乎并没有为我工作。任何想法为什么以及如何完成我所追求的?谢谢。
答
您可能必须在实际连接之前设置选项。
db = Mysql.init
db.options(Mysql::OPT_READ_TIMEOUT, 10)
db.real_connect('server', 'user', 'password', 'schema')