All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 6m35s
实现功能: - 实名状态检查轮询(可配置间隔) - 卡流量检查轮询(支持跨月流量追踪) - 套餐检查与超额自动停机 - 分布式并发控制(Redis 信号量) - 手动触发轮询(单卡/批量/条件筛选) - 数据清理配置与执行 - 告警规则与历史记录 - 实时监控统计(队列/性能/并发) 性能优化: - Redis 缓存卡信息,减少 DB 查询 - Pipeline 批量写入 Redis - 异步流量记录写入 - 渐进式初始化(10万卡/批) 压测工具(scripts/benchmark/): - Mock Gateway 模拟上游服务 - 测试卡生成器 - 配置初始化脚本 - 实时监控脚本 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
36 lines
658 B
Go
36 lines
658 B
Go
package polling
|
||
|
||
import (
|
||
"strconv"
|
||
|
||
"github.com/bytedance/sonic"
|
||
)
|
||
|
||
// formatInt64 将 int64 转换为字符串
|
||
func formatInt64(n int64) string {
|
||
return strconv.FormatInt(n, 10)
|
||
}
|
||
|
||
// formatUint 将 uint 转换为字符串
|
||
func formatUint(n uint) string {
|
||
return strconv.FormatUint(uint64(n), 10)
|
||
}
|
||
|
||
// mustMarshal 序列化为 JSON,失败时 panic
|
||
func mustMarshal(v interface{}) []byte {
|
||
data, err := sonic.Marshal(v)
|
||
if err != nil {
|
||
panic(err)
|
||
}
|
||
return data
|
||
}
|
||
|
||
// parseUint 将字符串解析为 uint
|
||
func parseUint(s string) (uint, error) {
|
||
n, err := strconv.ParseUint(s, 10, 64)
|
||
if err != nil {
|
||
return 0, err
|
||
}
|
||
return uint(n), nil
|
||
}
|