Mix VarWatch V1.1.17: Go 监视配置变量数据的变化并执行一些任务

栏目: 软件资讯 · 发布时间: 5年前

内容简介:OpenMix 出品:https://openmix.org Mix VarWatch 监视配置结构体变量的数据变化并执行一些任务 Monitor the data changes of configuration structure variables and perform some tasks 源码地址 Star 一下不迷...

OpenMix 出品:https://openmix.org

Mix VarWatch

监视配置结构体变量的数据变化并执行一些任务

Monitor the data changes of configuration structure variables and perform some tasks

源码地址

Star 一下不迷路,下次用的时候还能找到

- https://github.com/mix-go/varwatch
- https://gitee.com/mix-go/varwatch

Installation

go get github.com/mix-go/varwatch

Usage

当采用 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 发生变化时我们需要执行一些代码修改日志的级别

  • 首先将 Logger 节点配置 varwatch:"logger" 标签信息
  • 然后采用以下代码执行监听逻辑
w := varwatch.NewWatcher(&Config, 10 * time.Second)
w.Watch("logger", func() {
    // 获取变化后的值
    lv := Config.Logger.Level
    // 修改 logrus 的日志级别
    logrus.SetLevel(logrus.Level(uint32(lv)))
})
需要动态修改连接池信息,或者数据库账号密码都可以通过上面的范例实现。

License

Apache License Version 2.0, http://www.apache.org/licenses/


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

最愚蠢的一代

最愚蠢的一代

马克·鲍尔莱因 / 杨蕾 / 天津社会科学院出版社 / 2011-7 / 39.80元

《最愚蠢的一代》 美国大学教授的鲍尔莱恩认为,数码时代正在使美国的年轻一代成为知识最贫乏的一代人。 美国的青少年和年轻人正在被数码时代各种娱乐消遣性的工具所淹没。这些工具包括手机、社交网络和信息传送等等。他们通过这些工具传达的却是幼稚浮浅的东西,而且这些东西正在妨碍他们同历史、公民义务、国际事务和美术等成年人的现实世界进行重要的接触。 我们想当然地以为,这些善于吸收新技术的美国年......一起来看看 《最愚蠢的一代》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

在线进制转换器
在线进制转换器

各进制数互转换器

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试