加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

使用Ping查看Golang中的DB连接是否处于活动状态

发布时间:2020-12-16 09:27:36 所属栏目:大数据 来源:网络整理
导读:是否可以安全地ping数据库以检查我的golang应用程序是否仍然连接或是否有比这更好的解决方案?我在某处读过我们不应该使用.ping()来确定连接丢失. 谢谢. 解决方法 我想说Ping()是这样做的方法,如果你需要在程序启动时分别测试运行查询的连接. 通常,我只相信
是否可以安全地ping数据库以检查我的golang应用程序是否仍然连接或是否有比这更好的解决方案?我在某处读过我们不应该使用.ping()来确定连接丢失.

谢谢.

解决方法

我想说Ping()是这样做的方法,如果你需要在程序启动时分别测试运行查询的连接.

通常,我只相信如果您正在对DB执行查询并且连接失败,database / sql将自动尝试重新连接.因此,您可以使用Open来检查数据库连接args是否正确,并且信任查询以在连接丢失时返回错误.

人们说Ping()会导致竞争条件,但无法证明我如何或提供合适的替代测试所需的替代方案.

这就是Gorm(广泛使用的Golang ORM项目)如何做到这一点:

// Send a ping to make sure the database connection is alive.
    if d,ok := dbSQL.(*sql.DB); ok {
        if err = d.Ping(); err != nil {
            d.Close()
        }
    }
    return

https://github.com/jinzhu/gorm

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读