diff --git a/config/initializers/connection_fix.rb b/config/initializers/connection_fix.rb new file mode 100644 index 0000000000000000000000000000000000000000..e77253afc4e7113b63291bb7a9dfbc1c4a6326ea --- /dev/null +++ b/config/initializers/connection_fix.rb @@ -0,0 +1,17 @@ +module ActiveRecord::ConnectionAdapters + class MysqlAdapter + alias_method :execute_without_retry, :execute + + def execute(*args) + execute_without_retry(*args) + rescue ActiveRecord::StatementInvalid => e + if e.message =~ /server has gone away/i + warn "Server timed out, retrying" + reconnect! + retry + else + raise e + end + end + end +end