التعامل مع تلقائيا في عداد المفقودين اتصال قاعدة البيانات في أكتيفيريكورد؟

StackOverflow https://stackoverflow.com/questions/1634046

سؤال

ومع إطلاق الأمازون بتعديل صفحة 'القسري' ويندوز صيانة تساءلت العلائقية قاعدة بيانات الخدمة اليوم و إذا كان أي شخص لديه أي حلول لمعالجة اتصال قاعدة بيانات المفقودة في القضبان.

ومن الناحية المثالية أود أن تكون قادرة على تقديم تلقائيا صفحة صيانة للزوار إذا يختفي اتصال قاعدة البيانات (أي الأمازون يفعلون صيانتها) - قد فعلت كل أي شيء من هذا القبيل

وهتاف Arfon

هل كانت مفيدة؟

المحلول

ويمكنك القيام بذلك مع الوسيطة حامل:

class RescueFromNoDB < Struct.new(:app)
  def call(env)
    app.call(env)
  rescue Mysql::Error => e
    if e.message =~ /Can't connect to/
      [500, {"Content-Type" => "text/plain"}, ["Can't get to the DB server right now."]]
    else
      raise
    end
  end
end

من الواضح يمكنك تخصيص الرسالة الخطأ، وقليلا e.message =~ /Can't connect to/ قد يكون مجرد جنون العظمة، تقريبا يجب أن يتم القبض كافة الأخطاء SQL أخرى داخل ActionController::Dispatcher.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top