Как изящно обработать недоступный сервер базы данных? - PullRequest
1 голос
/ 21 августа 2011

У меня есть приложение, которое в основном на MySQL, но для нескольких страниц необходимо подключиться к другому серверу mssql.Я успешно сделал это, но, поскольку я разрабатываю на ноутбуке Mac, и сервер SQL находится на другом хосте, он иногда недоступен.Есть ли изящный способ обработки соединения, когда сервер недоступен?То есть, я все еще хочу, чтобы при разработке и тестировании запускались части, не зависящие от этого сервера.

Это также может быть полезно в случае, если приложение производственных rails теряет связь с сервером ms sql.затем, чтобы иметь возможность перехватить сообщение об ошибке и отобразить приятное сообщение «Сервер недоступен» ... но все же разрешить функционирование остальной части приложения, не зависящей от этой базы данных.

1 Ответ

2 голосов
/ 21 августа 2011

Я хотел бы изучить использование фильтра до на страницах, которые требуют доступа к базе данных. Когда вы обнаружите, что БД не работает, перенаправьте на страницу, не являющуюся базой данных, и высветите сообщение об ошибке.

  before_filter :check_for_database

  def check_for_database
    begin
      ActiveRecord::Base.connection_pool.with_connection {|con| con.active?}
    rescue => err
      flash[:error] = "The database is down, please use pages that dont require database access."
      redirect_to :controller => 'home'
      return
    end

Это было вдохновлено постом на RailsForum здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...