我正在使用 mysql (5.1) ruby (1.8.7) 连接器从数据库中提取一些数据。有些查询的运行时间往往比预期的要长,因此我想为这些查询设置连接超时。 related post提出的解决方案如下:
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' )
关于mysql - 使用 Mysql Ruby 设置连接超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7330303/