feat: 实现配置删除通知机制(deletedKeys)
- 服务端 fetchChangedConfigs 接口新增 deletedKeys 字段,返回已删除配置的 key 列表 - Go/Node.js/Python/Spring Boot 客户端支持解析 deletedKeys 并删除本地配置 - Spring Boot 客户端新增 removeConfigs 方法,同步更新 Spring Environment
This commit is contained in:
@@ -223,6 +223,18 @@ func (c *Client) fetchChanged() error {
|
||||
delete(wrapper.Data, "latest.fetch.timestamp")
|
||||
}
|
||||
|
||||
// 处理删除的配置
|
||||
if deletedKeysStr, ok := wrapper.Data["deletedKeys"]; ok && deletedKeysStr != "" {
|
||||
deletedKeys := strings.Split(deletedKeysStr, ",")
|
||||
c.mu.Lock()
|
||||
for _, key := range deletedKeys {
|
||||
delete(c.configs, key)
|
||||
}
|
||||
c.mu.Unlock()
|
||||
log.Printf("[ConfigClient] %d configs deleted", len(deletedKeys))
|
||||
delete(wrapper.Data, "deletedKeys")
|
||||
}
|
||||
|
||||
if len(wrapper.Data) > 0 {
|
||||
changed := make(map[string]string)
|
||||
for k, v := range wrapper.Data {
|
||||
|
||||
Reference in New Issue
Block a user