Comments (4)
确实有这个问题
你的需求是不是只需要启动时读取一次,并不需要持续监听配置
如果是这样的话,有个简单的办法修复,只在Watch时去启动监听。
如果是在Watch后,需要去关闭agollo 就不太好处理,实例被隐藏在viper后面
from agollo.
也不是,我也需要持续监听配置。只是在主程序退出时希望agollo也可以stop,毕竟有个goroutine在那里。我看remote那里所有的agollo都放在remote.agolloMap
里,简单加个退出方法是不是就可以了:
remote.go
func StopAll() {
agolloMap.Range(func(key, value interface{}) bool {
value.(agollo.Agollo).Stop()
return true
})
}
但是agollo.longPoll
会有被hold的情况,这种好像不一定够
from agollo.
主进程退出后,这些监听的goroutine也会消亡,其实不用太在意
这样也考虑过,是可以这么做。longPoll最坏情况下,对应的那个agollo实例,90秒后也会退出,也还好。
主要是viper没要求ConfigManager实现Close方法,绕开它主动关闭,会有些奇怪。
from agollo.
嗯,我不是太清楚主进程退出后监听goroutine相关的资源会不会被正常回收,stopCh还好,longPoll里面涉及到网络了不是太安心。viper接口里增加Close就好了,我先关issue吧,谢谢您抽空解答。
from agollo.
Related Issues (20)
- agollo v1.2.8, 启用从备份文件加载时, 在调用GetNameSpace(key)正常时, 会将备份文件的其他namespace的数据删除 HOT 1
- 能否为ApolloClient提供自定义签名入口 HOT 8
- 我不想要备份文件, 可以去掉么, 它无论如何都会创建一个备份文件我关不掉 HOT 6
- go mod tidy 报错 HOT 4
- 此客户端是如何支持多环境配置的? HOT 1
- can't get value by Env? HOT 2
- 没有贡献值不开心啊 HOT 4
- apollo中使用yaml格式的配置文件,viper读取为空 HOT 3
- 与viper 一起用时候怎么切换或者说选择apollo的cluster呢 HOT 4
- 为什么app.properties文件下储存的是json格式而不是property格式? HOT 1
- 为什么除了properties类型的数据能拉到,其他Json,Yaml的都拉不出来呢? HOT 1
- 用golang 1.18构建后拉不到配置,1.17正常。 HOT 5
- 可否加一个关闭备份选项
- 使用viper时,是否能暴露一个配置变更的方法 HOT 2
- agollo.Start()和viper同用时,配置变更后的读取操作会存在并发问题 HOT 1
- viper说明文档 好像不全 HOT 1
- viper 支持 secretKey HOT 1
- 签名计算bug HOT 3
- 启动后提示函数time.UnixMilli()错误
- 依赖的github.com/bketelsen/crypt 版本太低,存在 CWE-285/CWE-770/CWE-125/CWE-863/CWE-79安全漏洞
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from agollo.