feat(go): 升级 Go 版本至 1.20 统一将所有模块的 Go 版本从 1.18 或 1.19 升级到 1.20,以使用最新的语言特性和性能改进。 feat(service): 新增乱斗服务默认宠物生成逻辑 在 fight 模块中调用新的 MELEEService.Def() 方法来生成初始对战宠物, 并根据配置
limit 
一个高性能、并发安全的 Go 语言动态速率限制器
安装指南
go get -u github.com/xiaoqidun/limit
快速开始
package main
import (
"fmt"
"github.com/xiaoqidun/limit"
"golang.org/x/time/rate"
)
func main() {
// 1. 创建一个新的 Limiter 实例
limiter := limit.New()
// 2. 确保在程序退出前优雅地停止后台任务,这非常重要
defer limiter.Stop()
// 3. 为任意键 "some-key" 获取一个速率限制器
// - rate.Limit(2): 表示速率为 "每秒2个请求"
// - 2: 表示桶的容量 (Burst),允许瞬时处理2个请求
rateLimiter := limiter.Get("some-key", rate.Limit(2), 2)
// 4. 模拟3次连续的突发请求
// 由于速率和容量都为2,只有前两次请求能立即成功
for i := 0; i < 3; i++ {
if rateLimiter.Allow() {
fmt.Printf("请求 %d: 已允许\n", i+1)
} else {
fmt.Printf("请求 %d: 已拒绝\n", i+1)
}
}
}
授权协议
本项目使用 Apache License 2.0 授权协议