增加DB和HTTP调用时间

This commit is contained in:
jau1jz
2019-04-02 12:00:22 +08:00
parent ce5b3b03ac
commit b40ed93252
2 changed files with 49 additions and 6 deletions

View File

@@ -29,7 +29,7 @@ type DBModule struct {
password string
dbname string
maxconn int
PrintTime time.Duration
syncExecuteFun chan SyncFun
syncCoroutineNum int
}
@@ -241,6 +241,19 @@ func (slf *DBResult) mapSingle2interface(m map[string]string, v reflect.Value) e
return nil
}
func (slf *DBModule) SetQuerySlowTime(Time time.Duration){
slf.PrintTime = Time
}
func (slf *DBModule) IsPrintTimeLog(Time time.Duration)bool{
if slf.PrintTime != 0 && Time >= slf.PrintTime{
return true
}
return false
}
func (slf *DBResult) mapSlice2interface(data []map[string]string, in interface{}) error {
length := len(data)
@@ -354,7 +367,14 @@ func (slf *DBModule) QueryEx(query string, args ...interface{}) (*DataSetList, e
service.GetLogger().Printf(service.LEVER_ERROR, "cannot connect database:%s", query)
return &datasetList, fmt.Errorf("cannot connect database!")
}
TimeFuncStart := time.Now()
rows, err := slf.db.Query(query, args...)
TimeFuncPass := time.Since(TimeFuncStart)
if slf.IsPrintTimeLog(TimeFuncPass) {
service.GetLogger().Printf(service.LEVER_INFO, "DBModule QueryEx Time %s , Query :%s , args :%+v",TimeFuncPass,query,args)
}
if err != nil {
service.GetLogger().Printf(service.LEVER_ERROR, "Query:%s(%v)", query, err)
if rows != nil {
@@ -434,7 +454,12 @@ func (slf *DBModule) Exec(query string, args ...interface{}) (*DBResultEx, error
return ret, fmt.Errorf("cannot connect database!")
}
TimeFuncStart := time.Now()
res, err := slf.db.Exec(query, args...)
TimeFuncPass := time.Since(TimeFuncStart)
if slf.IsPrintTimeLog(TimeFuncPass) {
service.GetLogger().Printf(service.LEVER_INFO, "DBModule QueryEx Time %s , Query :%s , args :%+v",TimeFuncPass,query,args)
}
if err != nil {
service.GetLogger().Printf(service.LEVER_ERROR, "Exec:%s(%v)", query, err)
return nil, err

View File

@@ -33,9 +33,9 @@ type ControllerMapsType map[string]reflect.Value
type HttpServerService struct {
service.BaseService
httpserver network.HttpServer
port uint16
httpserver network.HttpServer
port uint16
PrintRequestTime bool
controllerMaps ControllerMapsType
certfile string
keyfile string
@@ -48,7 +48,6 @@ func (slf *HttpServerService) OnInit() error {
if slf.ishttps == true {
slf.httpserver.SetHttps(slf.certfile, slf.keyfile)
}
return nil
}
@@ -89,7 +88,6 @@ func (slf *HttpServerService) OnDestory() error {
}
func (slf *HttpServerService) OnSetupService(iservice service.IService) {
//
rpc.RegisterName(iservice.GetServiceName(), "HTTP_", iservice)
}
@@ -97,6 +95,19 @@ func (slf *HttpServerService) OnRemoveService(iservice service.IService) {
return
}
func (slf *HttpServerService) IsPrintRequestTime() bool {
if slf.PrintRequestTime == true {
return true
}
return false
}
func (slf *HttpServerService) SetPrintRequestTime(isPrint bool) {
slf.PrintRequestTime = isPrint
}
func (slf *HttpServerService) httpHandler(w http.ResponseWriter, r *http.Request) {
writeError := func(status int, msg string) {
w.Header().Set("Content-Type", "text/plain; charset=utf-8")
@@ -142,7 +153,14 @@ func (slf *HttpServerService) httpHandler(w http.ResponseWriter, r *http.Request
request := HttpRequest{r.Header, string(msg)}
var resp HttpRespone
TimeFuncStart := time.Now()
err = cluster.InstanceClusterMgr().Call(strCallPath, &request, &resp)
TimeFuncPass := time.Since(TimeFuncStart)
if slf.IsPrintRequestTime() {
service.GetLogger().Printf(service.LEVER_INFO, "HttpServer Time : %s IP : %S url : %s", TimeFuncPass, strCallPath)
}
w.Header().Set("Content-Type", "application/json;charset=utf-8")
if err != nil {
resp.Respone = []byte(fmt.Sprint(err))