diff --git a/app/db/Mgo.go b/app/db/Mgo.go index ee6ea03..958d345 100644 --- a/app/db/Mgo.go +++ b/app/db/Mgo.go @@ -355,3 +355,20 @@ func Err(err error) bool { } return true } + +// 检查mognodb是否lost connection +// 每个请求之前都要检查!! +func CheckMongoSessionLost() { + // fmt.Println("检查CheckMongoSessionLostErr") + err := Session.Ping() + if err != nil { + Log("Lost connection to db!") + Session.Refresh() + err = Session.Ping() + if err == nil { + Log("Reconnect to db successful.") + } else { + Log("重连失败!!!! 警告") + } + } +} diff --git a/app/lea/route/Route.go b/app/lea/route/Route.go index 595a529..b927d6f 100644 --- a/app/lea/route/Route.go +++ b/app/lea/route/Route.go @@ -2,7 +2,7 @@ package route import ( "github.com/revel/revel" -// "github.com/leanote/leanote/app/service" + "github.com/leanote/leanote/app/db" // . "github.com/leanote/leanote/app/lea" "net/url" "strings" @@ -42,6 +42,10 @@ func RouterFilter(c *revel.Controller, fc []revel.Filter) { } */ if route.ControllerName != "Static" { + + // 检查mongodb 是否lost + db.CheckMongoSessionLost() + // api设置 // leanote.com/api/user/get => ApiUser::Get //* /api/login ApiAuth.Login, 这里的设置, 其实已经转成了ApiAuth了