Обработка MySQL Failover(переключение роли master/slave) с помощью activerecord в приложении rails

Я новичок в Rails, и я создал приложение, соединяющееся с MySQL, используя activerecord. Я настроил чтение реплики master узел. Проблема в том, когда мой slave становится masterЯ получаю следующую ошибку в приложении:

MySQL server is running with the --read-only option so it cannot execute this statement

что я думаю, это приемлемо.

Но мое приложение всегда терпит неудачу и не восстанавливается, пока я не перезапущу приложение. Есть ли какая-либо конфигурация acitverecord или свойство соединения MySQL, которое я могу использовать для восстановления из этого сценария?

Я использую следующий конфиг в моем database.yml,

adapter: mysql2
encoding: utf8
url: <'DATABASE_URL'>
pool: 10
database: <'DATABASE_NAME'>
username: <'DATABASE_USER'>
password: <'DATABASE_PASS'>
reconnect: true 

Есть ли какая-либо конфигурация, которую я могу добавить для обработки аварийного переключения? Любое предложение, чтобы справиться со сценарием?

Заранее спасибо.

1 ответ

Решение

Я исправил проблему после этого блога. Поместите это здесь для справки, чтобы любой, кто сталкивается с проблемой, мог использовать это.

Согласно блогу, вы переопределите ActiveRecord::ConnectionAdapters::ConnectionManagement Адаптер и напишите свою собственную обработку соединения в случае ошибок.

Другие вопросы по тегам