当我发现持久连接关闭时,如何有效地重新连接到外部数据库?如果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不会自行重新连接并且是一个全局变量。
慕姐4208626
相关分类