From 82452d909a8c4ed1147817a1e23d20b090685d2c Mon Sep 17 00:00:00 2001 From: Julio Capote Date: Sun, 8 Jan 2023 08:28:30 -0500 Subject: async GC in background --- TODO | 2 +- main.go | 20 +++++++++++++------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/TODO b/TODO index 4076b5f..a398cc4 100644 --- a/TODO +++ b/TODO @@ -1,5 +1,5 @@ * graceful shutdown -* outbox delivery +* attachment support * namespace everything to /c/ so apache can 404 requests to / instead of us * outbox return latest 20 posts only * make badger GC run continously diff --git a/main.go b/main.go index 261c247..b4ea011 100644 --- a/main.go +++ b/main.go @@ -2,6 +2,7 @@ package main import ( "sync" + "time" "git.capotej.com/capotej/communique/cgi" "git.capotej.com/capotej/communique/config" @@ -41,13 +42,18 @@ func main() { } defer db.Close() - log.With("type", "db").Debug("Running GC") - err = db.RunValueLogGC(0.5) - if err == badger.ErrNoRewrite { - log.With("type", "db").Debug("Nothing to GC") - } else { - log.Fatal(err) - } + ticker := time.NewTicker(5 * time.Minute) + defer ticker.Stop() + + go func() { + for { + select { + case _ = <-ticker.C: + log.With("type", "db").Debug("Running GC") + db.RunValueLogGC(0.7) + } + } + }() // Persister persister := models.NewPersister(log, db) -- cgit v1.2.3