This commit is contained in:
Xin Wang 2022-06-29 08:21:54 +09:00 committed by GitHub
commit e428a02acb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1860,8 +1860,8 @@ func (v *Viper) WatchRemoteConfig() error {
return v.watchKeyValueConfig()
}
func (v *Viper) WatchRemoteConfigOnChannel() error {
return v.watchKeyValueConfigOnChannel()
func (v *Viper) WatchRemoteConfigOnChannel(run func()) error {
return v.watchKeyValueConfigOnChannel(run)
}
// Retrieve the first found remote configuration.
@ -1895,7 +1895,7 @@ func (v *Viper) getRemoteConfig(provider RemoteProvider) (map[string]interface{}
}
// Retrieve the first found remote configuration.
func (v *Viper) watchKeyValueConfigOnChannel() error {
func (v *Viper) watchKeyValueConfigOnChannel(run func()) error {
for _, rp := range v.remoteProviders {
respc, _ := RemoteConfig.WatchChannel(rp)
// Todo: Add quit channel
@ -1904,6 +1904,9 @@ func (v *Viper) watchKeyValueConfigOnChannel() error {
b := <-rc
reader := bytes.NewReader(b.Value)
v.unmarshalReader(reader, v.kvstore)
if b.Error == nil {
run()
}
}
}(respc)
return nil