From 5cd8475143225b8b2f359c9402b2d74d9c2d5024 Mon Sep 17 00:00:00 2001 From: John Date: Wed, 15 May 2019 16:47:39 +0800 Subject: [PATCH] add time.Time support for convertParam function of gdb --- g/database/gdb/gdb_func.go | 5 ++++ geg/other/test.go | 59 +++++++++++++++++--------------------- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/g/database/gdb/gdb_func.go b/g/database/gdb/gdb_func.go index 9532d093a..8b1dbf1b3 100644 --- a/g/database/gdb/gdb_func.go +++ b/g/database/gdb/gdb_func.go @@ -17,6 +17,7 @@ import ( "github.com/gogf/gf/g/util/gconv" "reflect" "strings" + "time" ) // 格式化SQL查询条件 @@ -136,6 +137,10 @@ func convertParam(value interface{}) interface{} { } switch kind { case reflect.Struct: + // 底层数据库引擎支持time.Time类型 + if t, ok := value.(time.Time); ok { + return t + } return gconv.String(value) } return value diff --git a/geg/other/test.go b/geg/other/test.go index 7e80fb035..c8745839d 100644 --- a/geg/other/test.go +++ b/geg/other/test.go @@ -1,40 +1,35 @@ package main import ( - "encoding/json" - "fmt" - "time" + "os" + "sync" ) func main() { - //b, e := gjson.MarshalOrdered(g.Map{ - // "a" : 1, - // "b" : 2, - // "c" : 3, - //}) - //fmt.Println(e) - //fmt.Println(string(b)) - - //m := map[string]interface{}{ - // "facet_is_special_price":[]string{"1"}, - // "score_outlet":"0", - // "skus":[]string{"DI139BE71WDWDFMX", "DI139BE71WDWDFMX-519406"}, - // "facet_novelty_two_days":[]string{"0"}, - // "facet_brand":[]string{"139"}, - // "sku":[]string{"DI139BE71WDWDFMX"}, - //} - - for { - m := make(map[string]interface{}) - m["facet_is_special_price"] = []string{"1"} - m["score_outlet"] = "0" - m["skus"] = []string{"DI139BE71WDWDFMX", "DI139BE71WDWDFMX-519406"} - m["facet_novelty_two_days"] = []string{"0"} - m["facet_brand"] = []string{"139"} - m["sku"] = []string{"DI139BE71WDWDFMX"} - b, _ := json.Marshal(m) - fmt.Println(string(b)) - time.Sleep(100*time.Millisecond) + path := "/Users/john/Temp/test.log" + os.Remove(path) + array := make([]*os.File, 1000) + for i := 0; i < len(array); i++ { + array[i], _ = os.OpenFile(path, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666) } - + c := make(chan struct{}) + // 62 byte * 10 = 6200 byte + s := "" + for i := 0; i < 100; i++ { + s += "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" + } + s += "\n" + wg := sync.WaitGroup{} + wg.Add(1000*len(array)) + for i := 0; i < 1000; i++ { + go func() { + <- c + for i := 0; i < len(array); i++ { + array[i].WriteString(s) + wg.Done() + } + }() + } + close(c) + wg.Wait() } \ No newline at end of file