config.go 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package performance_setting
  2. import (
  3. "github.com/QuantumNous/new-api/common"
  4. "github.com/QuantumNous/new-api/setting/config"
  5. )
  6. // PerformanceSetting 性能设置配置
  7. type PerformanceSetting struct {
  8. // DiskCacheEnabled 是否启用磁盘缓存(磁盘换内存)
  9. DiskCacheEnabled bool `json:"disk_cache_enabled"`
  10. // DiskCacheThresholdMB 触发磁盘缓存的请求体大小阈值(MB)
  11. DiskCacheThresholdMB int `json:"disk_cache_threshold_mb"`
  12. // DiskCacheMaxSizeMB 磁盘缓存最大总大小(MB)
  13. DiskCacheMaxSizeMB int `json:"disk_cache_max_size_mb"`
  14. // DiskCachePath 磁盘缓存目录
  15. DiskCachePath string `json:"disk_cache_path"`
  16. }
  17. // 默认配置
  18. var performanceSetting = PerformanceSetting{
  19. DiskCacheEnabled: false,
  20. DiskCacheThresholdMB: 10, // 超过 10MB 使用磁盘缓存
  21. DiskCacheMaxSizeMB: 1024, // 最大 1GB 磁盘缓存
  22. DiskCachePath: "", // 空表示使用系统临时目录
  23. }
  24. func init() {
  25. // 注册到全局配置管理器
  26. config.GlobalConfig.Register("performance_setting", &performanceSetting)
  27. // 同步初始配置到 common 包
  28. syncToCommon()
  29. }
  30. // syncToCommon 将配置同步到 common 包
  31. func syncToCommon() {
  32. common.SetDiskCacheConfig(common.DiskCacheConfig{
  33. Enabled: performanceSetting.DiskCacheEnabled,
  34. ThresholdMB: performanceSetting.DiskCacheThresholdMB,
  35. MaxSizeMB: performanceSetting.DiskCacheMaxSizeMB,
  36. Path: performanceSetting.DiskCachePath,
  37. })
  38. }
  39. // GetPerformanceSetting 获取性能设置
  40. func GetPerformanceSetting() *PerformanceSetting {
  41. return &performanceSetting
  42. }
  43. // UpdateAndSync 更新配置并同步到 common 包
  44. // 当配置从数据库加载后,需要调用此函数同步
  45. func UpdateAndSync() {
  46. syncToCommon()
  47. }
  48. // GetCacheStats 获取缓存统计信息(代理到 common 包)
  49. func GetCacheStats() common.DiskCacheStats {
  50. return common.GetDiskCacheStats()
  51. }
  52. // ResetStats 重置统计信息
  53. func ResetStats() {
  54. common.ResetDiskCacheStats()
  55. }