Go 自动重新加载配置
每当模块启动后对config参数进行更改时,我都会尝试实现自动重新加载配置 我所做的是,我已经为维护配置的特定表设置了触发器,因此每当执行insert/update/delete时,我都会维护另一个表以跟踪更改,因此每当执行更改时,我都会更新第二个表中该特定行的计数器和当前时间 例: 因此,每次更新configtab时,我都会更新第二个表(即跟踪表)中的计数器 在我的Go代码中,我编写了两种方法: 方法1:返回计数器和时间值 方法2:将计数器和时间传递的值与数据库中的值进行比较 if matched返回false(无更改),返回true,表示配置已修改 这些配置被加载到一个MAP->key->string、val->string片段中,并在各种包中访问 例如,我在那里有一些日志配置,我也通过从映射中获取来初始化值。Go 自动重新加载配置,go,Go,每当模块启动后对config参数进行更改时,我都会尝试实现自动重新加载配置 我所做的是,我已经为维护配置的特定表设置了触发器,因此每当执行insert/update/delete时,我都会维护另一个表以跟踪更改,因此每当执行更改时,我都会更新第二个表中该特定行的计数器和当前时间 例: 因此,每次更新configtab时,我都会更新第二个表(即跟踪表)中的计数器 在我的Go代码中,我编写了两种方法: 方法1:返回计数器和时间值 方法2:将计数器和时间传递的值与数据库中的值进行比较 if match
因此,如果配置被更改,我将更新我正在维护的映射,但我不知道如何向那些使用该映射重新分配配置的包发送信号,这一切看起来相当复杂。你能把配置保存在内存中吗?如果是这样,就这样做:
- Config是内存中的一个带有互斥锁的映射
- 呼叫站点总是在每次使用时请求配置值
my 2nd Table schema(Tracker table):
tablename|counter|time
configtab, 2, 0001-01-01 00:00:00(just showing dummy values)