postFlush externalized

This commit is contained in:
Umputun
2018-02-14 01:11:34 -06:00
parent b0fc46fbc7
commit b9550b6312
+13 -12
View File
@@ -103,20 +103,9 @@ func main() {
DevMode: opts.DevMode,
Exporter: &exporter,
AuthProviders: makeAuthProviders(sessionStore),
Cache: common.NewLoadingCache(4*time.Hour, 15*time.Minute, postFlushFn),
}
srv.Cache = common.NewLoadingCache(4*time.Hour, 15*time.Minute, func() {
// set post-flush callback
for _, site := range opts.Sites {
resp, err := http.Get("http://localhost:8080/api/v1/list?site=" + site)
if err != nil {
log.Printf("[WARN] failed to refresh cached list for %s, %s", site, err)
return
}
_ = resp.Body.Close()
}
})
if opts.DevMode {
log.Printf("[WARN] running in dev mode, no auth!")
}
@@ -197,6 +186,18 @@ func makeAuthProviders(sessionStore sessions.Store) []auth.Provider {
return providers
}
// post-flush callback invoked by cache after each flush in async way
func postFlushFn() {
for _, site := range opts.Sites {
resp, err := http.Get("http://localhost:8080/api/v1/list?site=" + site)
if err != nil {
log.Printf("[WARN] failed to refresh cached list for %s, %s", site, err)
return
}
_ = resp.Body.Close()
}
}
func setupLog(dbg bool) {
filter := &logutils.LevelFilter{
Levels: []logutils.LogLevel{"DEBUG", "INFO", "WARN", "ERROR"},