refactor(config): 添加配置写入的并发安全锁机制
- 引入 sync.Mutex 确保配置访问的线程安全性 - 在 WriteConfig 函数中实现读写锁定机制 - 防止多协程同时修改配置导致的数据竞争问题
This commit is contained in:
@@ -2,6 +2,7 @@ package config
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"sync"
|
||||||
|
|
||||||
"github.com/fsnotify/fsnotify"
|
"github.com/fsnotify/fsnotify"
|
||||||
"github.com/spf13/viper"
|
"github.com/spf13/viper"
|
||||||
@@ -17,6 +18,7 @@ type Config struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var APPConfig Config
|
var APPConfig Config
|
||||||
|
var configMu sync.Mutex
|
||||||
|
|
||||||
const (
|
const (
|
||||||
Url = "url"
|
Url = "url"
|
||||||
@@ -70,6 +72,8 @@ func InitConfig() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func WriteConfig(key string, value any) {
|
func WriteConfig(key string, value any) {
|
||||||
|
configMu.Lock()
|
||||||
viper.Set(key, value)
|
viper.Set(key, value)
|
||||||
viper.WriteConfig()
|
viper.WriteConfig()
|
||||||
|
configMu.Unlock()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user