From f8e16c5f26555502b65617926216e5fe0d20b876 Mon Sep 17 00:00:00 2001 From: Nazar Kanaev Date: Fri, 17 Jul 2020 23:31:51 +0100 Subject: [PATCH] delete old items --- server/server.go | 3 ++- storage/item.go | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/server/server.go b/server/server.go index 3e4bcba..ba678ec 100644 --- a/server/server.go +++ b/server/server.go @@ -38,7 +38,7 @@ func (h *Handler) startJobs() { } }() go h.db.SyncSearch() - //h.fetchAllFeeds() + h.fetchAllFeeds() } func (h *Handler) fetchFeed(feed storage.Feed) { @@ -141,6 +141,7 @@ func writeJSON(rw http.ResponseWriter, data interface{}) { func New() *http.Server { db, _ := storage.New() + db.DeleteOldItems() h := Handler{ db: db, feedQueue: make(chan storage.Feed), diff --git a/storage/item.go b/storage/item.go index d9fcbb3..6c11547 100644 --- a/storage/item.go +++ b/storage/item.go @@ -310,3 +310,19 @@ func (s *Storage) SyncSearch() { } } } + +func (s *Storage) DeleteOldItems() { + result, err := s.db.Exec( + `delete from items where status = ? and date < ?`, + READ, time.Now().Add(-time.Hour * 24 * 90) /* 90 days */) + if err != nil { + s.log.Print(err) + return + } + num, err := result.RowsAffected() + if err != nil { + s.log.Print(err) + return + } + s.log.Printf("Deleted %d items\n", num) +}