Commit 902884c1 authored by hujiebin's avatar hujiebin

尝试获取锁

parent 6a10396f
......@@ -36,6 +36,25 @@ func Lock(key string, expiration time.Duration) bool {
return true
}
// 尝试获取锁
func TryLock(key string, expiration time.Duration) bool {
deadline := time.Now().Add(expiration)
for {
if time.Now().After(deadline) {
return false // 超时无法获取锁
}
if Lock(key, expiration) {
return true
}
time.Sleep(time.Millisecond)
}
}
// 删除锁
func DelLock(key string) {
RedisClient.Del(context.Background(), key)
}
func GetCacheInt64(key string) (int64, error) {
data, err := RedisClient.Get(context.Background(), key).Int64()
if err != nil && err != redis.Nil {
......
......@@ -18,4 +18,6 @@ user_register_stat:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o user_register_stat user_register_stat.go
h5_game_yellow:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o h5_game_yellow h5_game_yellow.go
fruit_fix:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o fruit_fix fruit_fix.go
package main
import (
"fmt"
"git.hilo.cn/hilo-common/script/mysql"
"github.com/tealeg/xlsx"
"gorm.io/gorm"
)
var userIds = []uint64{3117191}
type FruitMachine struct {
Date string
Round int64
FruitId int
}
type FruitMachineStake2 struct {
Stake int64
}
func main() {
var Plus = make(map[int]int64) // fruitId->plush
Plus[1] = 5
Plus[2] = 5
Plus[3] = 5
Plus[4] = 5
Plus[5] = 10
Plus[6] = 15
Plus[7] = 25
Plus[8] = 45
var data = make(map[uint64]int64)
for round := 194; round <= 216; round++ {
var fm = new(FruitMachine)
if err := mysql.ProdReadOnlyDB.Model(FruitMachine{}).Where("`date` = '2023-08-09'").Where("round = ?", round).First(fm).Error; err != nil {
panic(err)
}
for _, userId := range userIds {
var fs = new(FruitMachineStake2)
if err := mysql.ProdReadOnlyDB.Table("fruit_machine_stake").
Where("`date` = '2023-08-09'").
Where("round = ?", round).
Where("fruit_id = ?", fm.FruitId).
Where("user_id = ?", userId).First(&fs).Error; err != nil {
if err != gorm.ErrRecordNotFound {
panic(err)
}
continue
}
data[userId] += fs.Stake * Plus[fm.FruitId]
}
}
excelFileName := fmt.Sprintf("./水果机.xlsx")
xlFile := xlsx.NewFile()
sheet, _ := xlFile.AddSheet("charge")
row := sheet.AddRow()
c1, c2 := row.AddCell(), row.AddCell()
c1.Value, c2.Value = "userId", "should"
for userId, award := range data {
row := sheet.AddRow()
c1, c2 := row.AddCell(), row.AddCell()
c1.Value, c2.Value = fmt.Sprintf("%d", userId), fmt.Sprintf("%d", award)
}
_ = xlFile.Save(excelFileName)
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment