`

让ActiveRecord在失出连接后自动重新连接数据库

阅读更多
看到了这个,也可以对大家有用,所以就贴出来了。
原文地址:http://snippets.dzone.com/posts/show/5519

我将以下的代码命名为active_record_hacks.rb放在config/initializers目录中,但是它也可以很容易地作为插件使用。

ActiveRecord::ConnectionAdapters::MysqlAdapter.module_eval do
  def execute_with_retry_once(sql, name = nil)
    retried = false
    begin
      execute_without_retry_once(sql, name)
    rescue ActiveRecord::StatementInvalid => exception
      ActiveRecord::Base.logger.info "#{exception}, retried? #{retried}"

      # Our database connection has gone away, reconnect and retry this method
      reconnect!
      unless retried
        retried = true
        retry
      end
    end
  end

  alias_method_chain :execute, :retry_once
end

分享到:
评论

相关推荐

    activerecord-postgis-adapter:基于Postgresql和rgeo的PostGIS ActiveRecord连接适配器

    适配器可以根据数据库表中的纬度和维数自动配置这些对象,或者您可以告诉适配器将数据转换为其他形式。 您也可以使用WKT格式设置属性数据。 第三,它使您可以在查询中包括简单的空间数据。 WKT格式的数据和RGeo...

    APDO:数据库连接,基于PDO,具有惰性连接,自定义缓存器和记录器,简单的界面可以通过外键查询和引用数据

    延迟连接(在第一个查询发送到数据库之前建立)。 存储查询日志。 如果可能,缓存语句结果和行。 用于进行查询和检索结果的简单界面。 简单地使用外键来检索引用的数据。 常问问题 为什么是 PDO? PDO 已经支持...

    ThinkPHP2.0完全开发手册

    融合了Struts的Action思想和JSP的TagLib(标签库)、RoR的ORM映射和ActiveRecord模式,封装了CURD和一些常用操作,在项目配置、类库导入、模版引擎、查询语言、自动验证、视图模型、项目编译、缓存机制、SEO支持、...

    ThinkPHP开发框架

    ThinkPHP借鉴了国外很多优秀的框架和模式,使用面向对象...库导入、模版引擎、查询语言、自动验证、视图模型、项目编译、缓存机制、SEO支持、分布式数据库、多数据库连接和切换、认证机制和扩展性方面均有独特的 表现。

    ThinkPHP v5.0.0 RC4.zip

    库导入、模版引擎、查询语言、自动验证、视图模型、项目编译、缓存机制、SEO支持、分布式数据库、多数据库连接和切换、认证机制和扩展性方面均有独特的 表现。 使用ThinkPHP,你可以更方便和快捷的开发和部署应用。...

    PluSQL:针对SQL爱好者的基于非ActiveRecord的ORM

    目标减少编写SQL而又不对其进行抽象化的乏味没有样板课根据主键名称自动检测关系鼓励而不是劝阻良好的数据库设计(例如,支持复合键,在连接表上不需要id字段) 提供使用对象迭代任何SQL查询的功能非常快(尽可能...

    transaction_retry:重试有关死锁和事务序列化错误的数据库事务。 支持MySQL,PostgreSQL和SQLite

    transaction_retry 重试有关死锁和事务序列化错误的数据库事务。 支持MySQL,PostgreSQL和...连接到数据库后。 重试的数据库死锁和序列化错误 MySQL 尝试获取锁时发现死锁 超过锁定等待超时 PostgreSQL 检测到死锁

    ThinkPHP v5.0.24 完整版

    库导入、模版引擎、查询语言、自动验证、视图模型、项目编译、缓存机制、SEO支持、分布式数据库、多数据库连接和切换、认证机制和扩展性方面均有独特的 表现。 使用ThinkPHP,你可以更方便和快捷的开发和部署...

    ThinkPHP v3.0.1 开发板.zip

    库导入、模版引擎、查询语言、自动验证、视图模型、项目编译、缓存机制、SEO支持、分布式数据库、多数据库连接和切换、认证机制和扩展性方面均有独特的 表现。   使用ThinkPHP,你可以更方便和快捷的开发和部署...

    ThinkPHP v5.0.24 核心版

    在项目配置、类 库导入、模版引擎、查询语言、自动验证、视图模型、项目编译、缓存机制、SEO支持、分布式数据库、多数据库连接和切换、认证机制和扩展性方面均有独特的 表现。 使用ThinkPHP,你可以更方便和快捷的...

    ThinkPHP v3.2.3 核心版

    库导入、模版引擎、查询语言、自动验证、视图模型、项目编译、缓存机制、SEO支持、分布式数据库、多数据库连接和切换、认证机制和扩展性方面均有独特的 表现。使用ThinkPHP,你可以更方便和快捷的开发和部署应用。...

    ThinkPHP v5.1 RC2

    在项目配置、类 库导入、模版引擎、查询语言、自动验证、视图模型、项目编译、缓存机制、SEO支持、分布式数据库、多数据库连接和切换、认证机制和扩展性方面均有独特的 表现。 使用ThinkPHP,你可以更方便和快捷的...

    ThinkPHP v5.0.24 完整版.zip

    库导入、模版引擎、查询语言、自动验证、视图模型、项目编译、缓存机制、SEO支持、分布式数据库、多数据库连接和切换、认证机制和扩展性方面均有独特的 表现。 ThinkPHP主要特性包括 规范:遵循PSR-2、PSR-4规范,...

    ThinkPHP2.0完全开发手册.chm

    融合了Struts的Action思想和JSP的TagLib(标签库)、RoR的ORM映射和ActiveRecord模式,封装了CURD和一些常用操作,在项目配置、类库导入、模版引擎、查询语言、自动验证、视图模型、项目编译、缓存机制、SEO支持、...

    ThinkPHP v5.0 正式版.zip

    库导入、模版引擎、查询语言、自动验证、视图模型、项目编译、缓存机制、SEO支持、分布式数据库、多数据库连接和切换、认证机制和扩展性方面均有独特的 表现。 使用ThinkPHP,你可以更方便和快捷的开发和部署应用。...

    ThinkPHP v5.0.2 完整版

    库导入、模版引擎、查询语言、自动验证、视图模型、项目编译、缓存机制、SEO支持、分布式数据库、多数据库连接和切换、认证机制和扩展性方面均有独特的 表现。 使用ThinkPHP,你可以更方便和快捷的开发和部署...

    ThinkPHP v3.2.3 完整版.rar

    库导入、模版引擎、查询语言、自动验证、视图模型、项目编译、缓存机制、SEO支持、分布式数据库、多数据库连接和切换、认证机制和扩展性方面均有独特的 表现。 使用ThinkPHP,你可以更方便和快捷的开发和部署...

    ThinkPHP v5.1 RC2.zip

    库导入、模版引擎、查询语言、自动验证、视图模型、项目编译、缓存机制、SEO支持、分布式数据库、多数据库连接和切换、认证机制和扩展性方面均有独特的 表现。 使用ThinkPHP,你可以更方便和快捷的开发和部署应用。...

Global site tag (gtag.js) - Google Analytics