func GetMConn(k string) *mgo.Session { var m_conn *mgo.Session = getMConn(k) var n = time.Second for { if err := m_conn.Ping(); err != nil { fmt.Printf("mongodb断开连接,%d秒后开始重连", n/time.Second) m_conn.Refresh() } else { if n/time.Second > 1 { fmt.Printf("重连成功") } break } fmt.Println("正在尝试重连") time.Sleep(n) n = n * 2 //最大重连间隔时长:10分钟 if n > 600*time.Second { n = 600 * time.Second } } return m_conn }