From 2e86352fa4c5dc5d9b3b2af5d223977cc3109a61 Mon Sep 17 00:00:00 2001 From: Petter Rodhelind Date: Sun, 21 Feb 2021 23:19:34 +0100 Subject: Cache cleanup on cacheTimeout. --- main.go | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/main.go b/main.go index 87d40fa..1b93d8d 100644 --- a/main.go +++ b/main.go @@ -143,7 +143,7 @@ func fetch(group string) (c *channel, err error) { url := "https://www.facebook.com/pg/" + group + "/posts/" - log.Println("Fetching: ", url) + log.Println("Fetching:", url) resp, err := http.Get(url) if err != nil { @@ -162,6 +162,21 @@ func fetch(group string) (c *channel, err error) { } func main() { + // clean the cache when channels have expired + go func() { + for { + time.Sleep(time.Duration(cacheTimeout) * time.Second) + for k, c := range cache.v { + if time.Now().Sub(c.Time).Seconds() > cacheTimeout { + cache.Lock() + delete(cache.v, k) + cache.Unlock() + log.Println("Removed from cache:", k) + } + } + } + }() + log.Println("Serving: http://localhost:1212") http.ListenAndServe(":1212", handler{}) } -- cgit v1.2.3