github.com/zly-app/zapp@v1.3.3/config/watch.provider.go (about) 1 package config 2 3 import ( 4 "go.uber.org/zap" 5 6 "github.com/zly-app/zapp/core" 7 "github.com/zly-app/zapp/logger" 8 ) 9 10 // 用于承载配置观察提供者 11 var configWatchProviders = make(map[string]core.IConfigWatchProvider) 12 13 // 获取默认配置观察提供者, 可能返回nil 14 func GetDefaultConfigWatchProvider() core.IConfigWatchProvider { 15 return configWatchProviders["default"] 16 } 17 18 // 设置默认配置观察提供者 19 func SetDefaultConfigWatchProvider(p core.IConfigWatchProvider) { 20 configWatchProviders["default"] = p 21 } 22 23 // 获取配置观察者, 不存在时返回nil 24 func GetConfigWatchProvider(name string) core.IConfigWatchProvider { 25 return configWatchProviders[name] 26 } 27 28 // 注册配置观察提供者 29 func RegistryConfigWatchProvider(name string, p core.IConfigWatchProvider) { 30 if name == "default" { 31 logger.Log.Fatal("配置提供者名不能为default") 32 } 33 if _, ok := configWatchProviders[name]; ok { 34 logger.Log.Fatal("配置提供者已存在", zap.String("name", name)) 35 } 36 configWatchProviders[name] = p 37 }