diff --git a/resource/mysql/mysql.go b/resource/mysql/mysql.go index 6089a93bb109b37061801c1325e11e78f933d43e..b7737fd2415c84f441d0589cbd3430a65b6458aa 100644 --- a/resource/mysql/mysql.go +++ b/resource/mysql/mysql.go @@ -51,8 +51,8 @@ func init() { if d, err := Db.DB(); err == nil { d.SetConnMaxLifetime(time.Minute * 30) // 连接可复用的最大时间。 - d.SetMaxIdleConns(300) // 空闲连接数 - d.SetMaxOpenConns(300) // 最大连接数 + d.SetMaxIdleConns(200) // 空闲连接数 + d.SetMaxOpenConns(200) // 最大连接数 if err := d.Ping(); err != nil { fmt.Printf("database ping error %v", err) } diff --git a/script/test_game_race.go b/script/test_game_race.go new file mode 100644 index 0000000000000000000000000000000000000000..c31648a12e9231770af812a1ada3b311fc3efdcc --- /dev/null +++ b/script/test_game_race.go @@ -0,0 +1,80 @@ +package main + +import ( + "fmt" + "git.hilo.cn/hilo-common/script/model" + "git.hilo.cn/hilo-common/script/mysql" + "git.hilo.cn/hilo-common/script/utils/jwt" + "io/ioutil" + "math/rand" + "net/http" + "strings" + "time" +) + +func init() { + rand.Seed(time.Now().UnixNano()) +} + +var raceUserCodes = []string{"1000653", "1000516", "1000675", "1000890", "1000755", "1000593", "1000629", "1000634", "1000765", + "1000591", "1000633", "1000224", "1000611", "1000689", "1000467", "1000384", "1000367", "1000623"} +var raceAmounts = []int{10, 100, 1000, 5000} + +func main() { + var users []model.User + if err := mysql.TestDB.Model(model.User{}).Where("code in ?", raceUserCodes).Find(&users).Error; err != nil { + panic(err) + } + for i := 0; i < 10; i++ { + go func() { + for { + times := 20 + rand.Intn(30) + for i := 0; i < times; i++ { + + arr := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} + rand.Shuffle(len(arr), func(i, j int) { + arr[i], arr[j] = arr[j], arr[i] + }) + for _, id := range arr { + if rand.Intn(100) < 30 { + break + } + url := "https://test.apiv1.faceline.live/v1/race/" + method := "POST" + amount := raceAmounts[rand.Intn(len(raceAmounts))] + payload := strings.NewReader(fmt.Sprintf("raceId=%d&amount=%d", id, amount)) + + client := &http.Client{} + req, err := http.NewRequest(method, url, payload) + + if err != nil { + fmt.Println(err) + return + } + u := users[rand.Intn(len(users))] + token, _ := jwt.GenerateToken(u.Id, u.ExternalId, "hiloApi") + req.Header.Add("nonce", "hilo") + req.Header.Add("token", token) + req.Header.Add("Content-Type", "application/x-www-form-urlencoded") + + res, err := client.Do(req) + if err != nil { + fmt.Println(err) + return + } + defer res.Body.Close() + + body, err := ioutil.ReadAll(res.Body) + if err != nil { + fmt.Println(err) + return + } + fmt.Printf("body:%v,uid:%v\n", string(body), u.Id) + } + } + //time.Sleep(time.Second * 55) + } + }() + } + time.Sleep(time.Hour * 24) +}