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

Я новичок в 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 Ответ

0 голосов
/ 27 сентября 2018

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

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

...