rpm_cache.go 655 B

1234567891011121314151617
  1. package service
  2. import "context"
  3. // RPMCache RPM 计数器缓存接口
  4. // 用于 Anthropic OAuth/SetupToken 账号的每分钟请求数限制
  5. type RPMCache interface {
  6. // IncrementRPM 原子递增并返回当前分钟的计数
  7. // 使用 Redis 服务器时间确定 minute key,避免多实例时钟偏差
  8. IncrementRPM(ctx context.Context, accountID int64) (count int, err error)
  9. // GetRPM 获取当前分钟的 RPM 计数
  10. GetRPM(ctx context.Context, accountID int64) (count int, err error)
  11. // GetRPMBatch 批量获取多个账号的 RPM 计数(使用 Pipeline)
  12. GetRPMBatch(ctx context.Context, accountIDs []int64) (map[int64]int, error)
  13. }