Я сталкиваюсь с ошибкой «mysql ушел» в Ruby через определенное время, в течение которого скрипт выполнялся.
Я хочу попытаться указать драгоценному камню mysql автоматически переподключаться при потере соединения.
Мой текущий код выглядит следующим образом:
def self.connect()
begin
if !@@dbh.nil?
self.disconnect
end
@@dbh = Mysql.real_connect(@@server, @@user, @@pass, @@db)
puts "[+] Connected to the " + @@db + " database with user '" + @@user + "'"
rescue Mysql::Error => e
# log error
end
end
В следующем руководстве [0] говорится, что гем mysql имеет объектную переменную 'reconnect', однако я не уверен, как использовать ее в своем коде.
Как реализовать эту опцию в приведенном выше коде?
Заранее спасибо, Райан
[0] http://www.tmtm.org/en/mysql/ruby/
ИЗМЕНИТЬ ---
В ПОРЯДКЕ. Думаю, я понял это.
Мне нужно добавить @@dbh.reconnect = true
после строки @@dbh = Mysql.real_connect(@@server, @@user, @@pass, @@db)
.
Примечание. Согласно «хорошему» чату в IRC, гем mysql может быть не лучшим гемом Ruby для использования.
@@
? Это нетрадиционно до такой степени, что подсветка синтаксиса Stack Overflow даже не знает, что с ними делать. - person tadman   schedule 17.07.2012