使用go开发的时候是不是大家都遇到过,更改完配置之后需要重新启动自己的服务,会导致短暂的访问不到的效果,今天就给大家分享一个go热更新配置文件的小例子,让你不用停服务的情况也能加最新的配置文件,请看下面代码
func TestExecuteReadConfig(t *testing.T) {viper.SetConfigName("config01")viper.SetConfigType("yaml")viper.AddConfigPath(".")err := viper.ReadInConfig()if err != nil {panic(fmt.Errorf("读取%s", err))}// 监听配置文件的变化viper.WatchConfig()viper.OnConfigChange(func(event fsnotify.Event) {fmt.Println("Config file changed:", event.Name)if err := viper.ReadInConfig(); err != nil {fmt.Printf("error reading config file, %s", err)return}})for {number := viper.GetString("goroutine.goroutineNum")fmt.Println(number)time.Sleep(time.Second * 3)}
}