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  }