mirror of
https://github.com/ctwj/urldb.git
synced 2025-11-25 03:15:04 +08:00
opt: 优化数据库连接池,配置管理,错误处理
This commit is contained in:
31
config/sync.go
Normal file
31
config/sync.go
Normal file
@@ -0,0 +1,31 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"github.com/ctwj/urldb/db/repo"
|
||||
"github.com/ctwj/urldb/utils"
|
||||
)
|
||||
|
||||
// SyncWithRepository 同步配置管理器与Repository的缓存
|
||||
func (cm *ConfigManager) SyncWithRepository(repoManager *repo.RepositoryManager) {
|
||||
// 监听配置变更事件并同步缓存
|
||||
// 这是一个抽象概念,实际实现需要修改Repository接口
|
||||
|
||||
// 当配置更新时,通知Repository清理缓存
|
||||
go func() {
|
||||
watcher := cm.AddConfigWatcher()
|
||||
for {
|
||||
select {
|
||||
case key := <-watcher:
|
||||
// 通知Repository层清理缓存(如果Repository支持)
|
||||
utils.Debug("配置 %s 已更新,可能需要同步到Repository缓存", key)
|
||||
}
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
// UpdateRepositoryCache 当配置管理器更新配置时,通知Repository层同步
|
||||
func (cm *ConfigManager) UpdateRepositoryCache(repoManager *repo.RepositoryManager) {
|
||||
// 这个函数需要Repository支持特定的缓存清理方法
|
||||
// 由于现有Repository没有提供这样的接口,我们只能依赖数据库同步
|
||||
utils.Info("配置已通过配置管理器更新,Repository层将从数据库重新加载")
|
||||
}
|
||||
Reference in New Issue
Block a user