新增 DB/Redis 连接池配置与校验,并补充单测 网关请求体大小限制与 413 处理 HTTP/req 客户端池化并调整上游连接池默认值 并发槽位改为 ZSET+Lua 与指数退避 用量统计改 SQL 聚合并新增索引迁移 计费缓存写入改工作池并补测试/基准 测试: 在 backend/ 下运行 go test ./...
51 lines
1.3 KiB
Go
51 lines
1.3 KiB
Go
package repository
|
||
|
||
import (
|
||
"github.com/Wei-Shaw/sub2api/internal/config"
|
||
"github.com/Wei-Shaw/sub2api/internal/service"
|
||
"github.com/google/wire"
|
||
"github.com/redis/go-redis/v9"
|
||
)
|
||
|
||
// ProvideConcurrencyCache 创建并发控制缓存,从配置读取 TTL 参数
|
||
// 性能优化:TTL 可配置,支持长时间运行的 LLM 请求场景
|
||
func ProvideConcurrencyCache(rdb *redis.Client, cfg *config.Config) service.ConcurrencyCache {
|
||
return NewConcurrencyCache(rdb, cfg.Gateway.ConcurrencySlotTTLMinutes)
|
||
}
|
||
|
||
// ProviderSet is the Wire provider set for all repositories
|
||
var ProviderSet = wire.NewSet(
|
||
NewUserRepository,
|
||
NewApiKeyRepository,
|
||
NewGroupRepository,
|
||
NewAccountRepository,
|
||
NewProxyRepository,
|
||
NewRedeemCodeRepository,
|
||
NewUsageLogRepository,
|
||
NewSettingRepository,
|
||
NewUserSubscriptionRepository,
|
||
|
||
// Cache implementations
|
||
NewGatewayCache,
|
||
NewBillingCache,
|
||
NewApiKeyCache,
|
||
ProvideConcurrencyCache,
|
||
NewEmailCache,
|
||
NewIdentityCache,
|
||
NewRedeemCache,
|
||
NewUpdateCache,
|
||
NewGeminiTokenCache,
|
||
|
||
// HTTP service ports (DI Strategy A: return interface directly)
|
||
NewTurnstileVerifier,
|
||
NewPricingRemoteClient,
|
||
NewGitHubReleaseClient,
|
||
NewProxyExitInfoProber,
|
||
NewClaudeUsageFetcher,
|
||
NewClaudeOAuthClient,
|
||
NewHTTPUpstream,
|
||
NewOpenAIOAuthClient,
|
||
NewGeminiOAuthClient,
|
||
NewGeminiCliCodeAssistClient,
|
||
)
|