使用Go语言实现配置文件热加载功能

2020-01-28 13:02:00王旭

上面代码中有一段代码非常重要:


func(a *AppconfigMgr)Callback(conf *config.Config){
 var appConfig = &AppConfig{}
 port,err := conf.GetInt("server_port")
 if err != nil{
  fmt.Println("get port failed,err:",err)
  return
 }
 appConfig.port = port
 fmt.Println("port:",appConfig.port)
 nginxAddr,err := conf.GetString("nginx_addr")
 if err != nil{
  fmt.Println("get nginx addr failed,err:",err)
  return
 }
 appConfig.nginxAddr = nginxAddr
 fmt.Println("nginx addr :",appConfig.nginxAddr)
 appConfigMgr.config.Store(appConfig)
}

这里我们实现了Callback方法,同时就实现了我们在config包中定义的那个接口

测试效果如下,当我们更改配置文件后,程序中的配置文件也被重新加载

完整的测试代码地址:https://github.com/pythonsite/go_simple_code/tree/master/config_test

总结

以上所述是小编给大家介绍的使用Go语言实现配置文件热加载功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!