MongoDB― нужно отображать состояние БД (работает или нет) - PullRequest
0 голосов
/ 29 августа 2011

В настоящее время я использую MongoDB для отслеживания различных вещей в приложении Rails 2.Я использую следующий код, чтобы проверить, работает ли MongoDB и, в зависимости от статуса, отображать ссылку или сообщение «Offline».

Это только для администраторов, поэтому оно не является критически важным, поскольку приложение будет продолжать работать без MongoDB, но я хочу продолжать отключать ссылку в меню, когда она не работает.Тем не менее, мне не нравятся накладные расходы из приведенного ниже кода (не занимает много времени, но надеюсь, что есть более чистый и быстрый способ):

  def verify_mongodb_status
    begin
      track = Track.first
      @mongodb_running = true
    rescue
      @mongodb_running = false
      logger.debug("***MongoDB not running.***")
      notify_admin_about_errors("***MongoDB is not running***)
    end
   end

РЕДАКТИРОВАТЬ: я забыл упомянутьЯ уже делаю before_filter для этого;метод находится в application_controller.rb.

1 Ответ

0 голосов
/ 29 августа 2011

Я решил пойти с action_caching, так как, похоже, нет отличного способа сделать это.Результатом стало довольно значительное увеличение скорости с ~ 120 мс до ~ 16-25 мс:

  def verify_mongodb_status
    begin
      track = Track.first
      @mongodb_running = true
    rescue => e
      @mongodb_running = false
      logger.debug("***MONGODB OFFLINE***: #{e}")
      notify_admin_about_errors("MongoDB", "MongoDB error:\n#{e}", nil)
      expire_action :action => :verify_mongodb_status
      return
    end
  end

Теперь я добавляю логику, чтобы избежать бомбардировки электронной почтой, когда MongoDB отключается (достаточно 1).1004 *

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