fix: provider auto update
This commit is contained in:
@ -44,6 +44,12 @@ func (f *fetcher) Initial() (interface{}, error) {
|
||||
err error
|
||||
)
|
||||
|
||||
defer func() {
|
||||
if f.ticker != nil {
|
||||
go f.pullLoop()
|
||||
}
|
||||
}()
|
||||
|
||||
if stat, fErr := os.Stat(f.vehicle.Path()); fErr == nil {
|
||||
buf, err = ioutil.ReadFile(f.vehicle.Path())
|
||||
modTime := stat.ModTime()
|
||||
@ -83,9 +89,6 @@ func (f *fetcher) Initial() (interface{}, error) {
|
||||
}
|
||||
|
||||
f.hash = md5.Sum(buf)
|
||||
if f.ticker != nil {
|
||||
go f.pullLoop()
|
||||
}
|
||||
|
||||
return rules, nil
|
||||
}
|
||||
|
@ -118,7 +118,8 @@ func NewRuleSetProvider(name string, behavior P.RuleType, interval time.Duration
|
||||
rp,
|
||||
}
|
||||
|
||||
runtime.SetFinalizer(wrapper, rp.fetcher.Destroy())
|
||||
final := func(provider *RuleSetProvider) { rp.fetcher.Destroy() }
|
||||
runtime.SetFinalizer(wrapper, final)
|
||||
return wrapper
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user