commit
This commit is contained in:
83
go_backend/cmd/clear_bind_lock.go
Normal file
83
go_backend/cmd/clear_bind_lock.go
Normal file
@@ -0,0 +1,83 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"ai_xhs/config"
|
||||
"ai_xhs/database"
|
||||
"context"
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
func main() {
|
||||
// 加载配置
|
||||
if err := config.LoadConfig("dev"); err != nil {
|
||||
log.Fatalf("配置加载失败: %v", err)
|
||||
}
|
||||
|
||||
// 连接Redis
|
||||
if err := database.InitRedis(); err != nil {
|
||||
log.Fatalf("Redis连接失败: %v", err)
|
||||
}
|
||||
|
||||
ctx := context.Background()
|
||||
|
||||
// 获取命令行参数
|
||||
if len(os.Args) < 2 {
|
||||
fmt.Println("用法: go run cmd/clear_bind_lock.go <employee_id>")
|
||||
fmt.Println("示例: go run cmd/clear_bind_lock.go 1")
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
employeeID, err := strconv.Atoi(os.Args[1])
|
||||
if err != nil {
|
||||
log.Fatalf("无效的员工ID: %v", err)
|
||||
}
|
||||
|
||||
// 构造锁的key
|
||||
lockKey := fmt.Sprintf("lock:bind_xhs:%d", employeeID)
|
||||
|
||||
// 检查锁是否存在
|
||||
exists, err := database.RDB.Exists(ctx, lockKey).Result()
|
||||
if err != nil {
|
||||
log.Fatalf("检查锁失败: %v", err)
|
||||
}
|
||||
|
||||
if exists > 0 {
|
||||
// 获取锁的TTL
|
||||
ttl, err := database.RDB.TTL(ctx, lockKey).Result()
|
||||
if err != nil {
|
||||
log.Printf("获取锁TTL失败: %v", err)
|
||||
} else {
|
||||
log.Printf("发现锁: %s, 剩余时间: %v", lockKey, ttl)
|
||||
}
|
||||
|
||||
// 删除锁
|
||||
err = database.RDB.Del(ctx, lockKey).Err()
|
||||
if err != nil {
|
||||
log.Fatalf("删除锁失败: %v", err)
|
||||
}
|
||||
|
||||
log.Printf("✓ 成功删除锁: %s", lockKey)
|
||||
} else {
|
||||
log.Printf("未发现锁: %s", lockKey)
|
||||
}
|
||||
|
||||
// 列出所有相关的锁
|
||||
fmt.Println("\n=== 检查所有绑定相关的锁 ===")
|
||||
keys, err := database.RDB.Keys(ctx, "lock:bind_xhs:*").Result()
|
||||
if err != nil {
|
||||
log.Printf("查询锁失败: %v", err)
|
||||
} else {
|
||||
if len(keys) > 0 {
|
||||
fmt.Printf("发现 %d 个绑定锁:\n", len(keys))
|
||||
for _, key := range keys {
|
||||
ttl, _ := database.RDB.TTL(ctx, key).Result()
|
||||
fmt.Printf(" - %s (TTL: %v)\n", key, ttl)
|
||||
}
|
||||
} else {
|
||||
fmt.Println("未发现任何绑定锁")
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user