为了账号安全,请及时绑定邮箱和手机立即绑定

重新连接外部数据库的好模式是什么?

重新连接外部数据库的好模式是什么?

Go
有只小跳蛙 2021-06-02 21:26:30
当我发现持久连接关闭时,如何有效地重新连接到外部数据库?如果ExtClient失去连接,它会在 上返回“Broken pipe” err。func ListenForWork(cmdChannel <-chan *WorkCmd) {    for {        cmd, ok := <- cmdChannel        if !ok {            break        }        for { // Retry request until it's OK (`Broken pipe error` might destroy it)            _, err := ExtClient.Request(cmd.Key, cmd.Value)            if err == nil {                break            }        }    }}我怎样才能通过这种或另一种方法以有效的方式重新连接?也欢迎对此代码进行任何改进。ExtClient不会自行重新连接并且是一个全局变量。
查看完整描述

2 回答

?
慕姐4208626

TA贡献1852条经验 获得超7个赞

假设 ExtClient 有一个 Connect 或 Reconnect 方法。

并且还假设 BrokenPipe 错误被导出为一个可以再次匹配的变量。

那么这应该工作 if err == BrokenPipeErr { ExtClient.Connect(args ...SomeType) }

不过,这些假设很多,因此您可能应该告诉我们更多信息,例如您要连接的数据库。您正在使用哪个客户端库。以及其他此类信息。


查看完整回答
反对 回复 2021-06-07
  • 2 回答
  • 0 关注
  • 163 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信