gpt4 book ai didi

go - 在 Golang 中使用 Ping 查看 DB Connection 是否存在

转载 作者:IT王子 更新时间:2023-10-29 01:24:24 24 4
gpt4 key购买 nike

仅通过 ping 数据库来检查我的 golang 应用程序是否仍处于连接状态是否安全,或者是否有比这更好的解决方案?我在某处读到我们不应该使用 .ping() 来确定连接丢失。

谢谢。

最佳答案

如果您可能只需要在程序启动时单独测试正在运行的查询的连接,我会说 Ping() 是执行此操作的方法。

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

人们说 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

关于go - 在 Golang 中使用 Ping 查看 DB Connection 是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48196746/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com