ruby-mysql2: MySQL server has gone away

Есть даемон написанный на ruby с использованием гема mysql2, занимается тем, что иногда получает сообщение из AMQP и пишет в базу.

При длительном простое MySQL закрывает соединение по таймауту и при попытке выполнить запрос вываливается exception 'MySQL server has gone away'. Гугл выдает решение для ActiveRecord, про mysql2 ничего. В методах класса Mysql2::Client ничего подходящего не нашел, опция :reconnect => true не помогает.

Как проверить соединение перед выполнением запроса и если оно закрыто, то поднять его снова?
  • Вопрос задан
  • 2660 просмотров
Пригласить эксперта
Ответы на вопрос 2
eternals
@eternals
Я говноруби не знаю, но в mysql коннекторах обычно проверить можно функцией Ping.
Ответ написан
Комментировать
Riateche
@Riateche
Отлавливайте исключение и делайте Client.new снова.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы