mirror of
https://github.com/astaxie/beego.git
synced 2024-10-01 07:41:49 +00:00
44 lines
770 B
Go
44 lines
770 B
Go
|
package admin
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"net/http"
|
||
|
)
|
||
|
|
||
|
//type DatabaseCheck struct {
|
||
|
//}
|
||
|
|
||
|
//func (dc *DatabaseCheck) Check() error {
|
||
|
// if dc.isConnected() {
|
||
|
// return nil
|
||
|
// } else {
|
||
|
// return errors.New("can't connect database")
|
||
|
// }
|
||
|
//}
|
||
|
|
||
|
//AddHealthCheck("database",&DatabaseCheck{})
|
||
|
|
||
|
var AdminCheckList map[string]HealthChecker
|
||
|
|
||
|
type HealthChecker interface {
|
||
|
Check() error
|
||
|
}
|
||
|
|
||
|
func AddHealthCheck(name string, hc HealthChecker) {
|
||
|
AdminCheckList[name] = hc
|
||
|
}
|
||
|
|
||
|
func Healthcheck(rw http.ResponseWriter, req *http.Request) {
|
||
|
for name, h := range AdminCheckList {
|
||
|
if err := h.Check(); err != nil {
|
||
|
fmt.Fprintf(rw, "%s : ok\n", name)
|
||
|
} else {
|
||
|
fmt.Fprintf(rw, "%s : %s\n", name, err.Error())
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func init() {
|
||
|
AdminCheckList = make(map[string]HealthChecker)
|
||
|
}
|