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() return v.watchKeyValueConfig()
} }
func (v *Viper) WatchRemoteConfigOnChannel() error { func (v *Viper) WatchRemoteConfigOnChannel(run func()) error {
return v.watchKeyValueConfigOnChannel() return v.watchKeyValueConfigOnChannel(run)
} }
// Retrieve the first found remote configuration. // 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. // Retrieve the first found remote configuration.
func (v *Viper) watchKeyValueConfigOnChannel() error { func (v *Viper) watchKeyValueConfigOnChannel(run func()) error {
for _, rp := range v.remoteProviders { for _, rp := range v.remoteProviders {
respc, _ := RemoteConfig.WatchChannel(rp) respc, _ := RemoteConfig.WatchChannel(rp)
// Todo: Add quit channel // Todo: Add quit channel
@ -1904,6 +1904,9 @@ func (v *Viper) watchKeyValueConfigOnChannel() error {
b := <-rc b := <-rc
reader := bytes.NewReader(b.Value) reader := bytes.NewReader(b.Value)
v.unmarshalReader(reader, v.kvstore) v.unmarshalReader(reader, v.kvstore)
if b.Error == nil {
run()
}
} }
}(respc) }(respc)
return nil return nil