代码拉取完成,页面将自动刷新
OpenMix 出品:https://openmix.org
监视配置结构体变量的数据变化并执行一些任务
Monitor the data changes of configuration structure variables and perform some tasks
go get github.com/mix-go/varwatch
当采用 spf13/viper jinzhu/configor 这种绑定变量的配置库来动态更新配置信息
任何采用 &Config 指针绑定数据的配置库都可以
var Config struct {
Logger struct {
Level int `json:"level"`
} `json:"logger" varwatch:"logger"`
Database struct {
User string `json:"user"`
Pwd string `json:"pwd"`
Db string `json:"db"`
MaxOpen int `json:"max_open"`
MaxIdle int `json:"max_idle"`
} `json:"database" varwatch:"database"`
}
err := viper.Unmarshal(&Config)
以动态修改日志级别举例:当 Config.Logger.Level
发生变化时我们需要执行一些代码修改日志的级别
varwatch:"logger"
标签信息w := varwatch.NewWatcher(&Config, 10 * time.Second)
w.Watch("logger", func() {
// 获取变化后的值
lv := Config.Logger.Level
// 修改 logrus 的日志级别
logrus.SetLevel(logrus.Level(uint32(lv)))
})
需要动态修改连接池信息,或者数据库账号密码都可以通过上面的范例实现。
Apache License Version 2.0, http://www.apache.org/licenses/
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。