防止实例方法打印到控制台
Preventing an Instance Method from Printing to Console
我正在编写一个简单的 Ruby 脚本,它利用 mysql2
gem.
为了正确终止与数据库的连接并避免 Too many connections
错误,我将我的连接存储到变量 mysql
中,如下所示:
mysql = Mysql2::Client.new(:host => hst, :username => usr, :password => pass, :database => db, :connect_timeout => 30)
然后我关闭连接:
mysql.close
发生这种情况时,我得到:
closed MySQL connection
在控制台中。
如何在 closed MySQL connection
不显示在终端中的情况下实现实例方法 #close
找到 here?
你可以这样做:
def silence_stdout
$stdout = File.new( '/dev/null', 'w' )
yield
ensure
$stdout = STDOUT
end
并使用该方法close
silence_stdout{mysql.close}
我正在编写一个简单的 Ruby 脚本,它利用 mysql2
gem.
为了正确终止与数据库的连接并避免 Too many connections
错误,我将我的连接存储到变量 mysql
中,如下所示:
mysql = Mysql2::Client.new(:host => hst, :username => usr, :password => pass, :database => db, :connect_timeout => 30)
然后我关闭连接:
mysql.close
发生这种情况时,我得到:
closed MySQL connection
在控制台中。
如何在 closed MySQL connection
不显示在终端中的情况下实现实例方法 #close
找到 here?
你可以这样做:
def silence_stdout
$stdout = File.new( '/dev/null', 'w' )
yield
ensure
$stdout = STDOUT
end
并使用该方法close
silence_stdout{mysql.close}