From b8a2d0f32fd93b1f30da647b78bc56135464235f Mon Sep 17 00:00:00 2001 From: Henry Dollman Date: Tue, 6 Aug 2024 15:09:46 -0400 Subject: [PATCH] use txDao in deleteOldRecords for deletion only --- hub/main.go | 16 ++++++---------- hub/records.go | 16 +++++++++++----- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/hub/main.go b/hub/main.go index a40af4e..c8eed32 100644 --- a/hub/main.go +++ b/hub/main.go @@ -22,7 +22,6 @@ import ( "github.com/pocketbase/pocketbase" "github.com/pocketbase/pocketbase/apis" "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/daos" "github.com/pocketbase/pocketbase/models" "github.com/pocketbase/pocketbase/plugins/migratecmd" "github.com/pocketbase/pocketbase/tools/cron" @@ -105,15 +104,12 @@ func main() { // cron job to delete old records scheduler := cron.New() scheduler.MustAdd("delete old records", "8 * * * *", func() { - app.Dao().RunInTransaction(func(txDao *daos.Dao) error { - collections := []string{"system_stats", "container_stats"} - deleteOldRecords(txDao, collections, "1m", time.Hour) - deleteOldRecords(txDao, collections, "10m", 12*time.Hour) - deleteOldRecords(txDao, collections, "20m", 24*time.Hour) - deleteOldRecords(txDao, collections, "120m", 7*24*time.Hour) - deleteOldRecords(txDao, collections, "480m", 30*24*time.Hour) - return nil - }) + collections := []string{"system_stats", "container_stats"} + deleteOldRecords(collections, "1m", time.Hour) + deleteOldRecords(collections, "10m", 12*time.Hour) + deleteOldRecords(collections, "20m", 24*time.Hour) + deleteOldRecords(collections, "120m", 7*24*time.Hour) + deleteOldRecords(collections, "480m", 30*24*time.Hour) }) scheduler.Start() return nil diff --git a/hub/records.go b/hub/records.go index 3259b60..1ec2563 100644 --- a/hub/records.go +++ b/hub/records.go @@ -141,7 +141,7 @@ func twoDecimals(value float64) float64 { } /* Delete records of specified collections and type that are older than timeLimit */ -func deleteOldRecords(txDao *daos.Dao, collections []string, recordType string, timeLimit time.Duration) { +func deleteOldRecords(collections []string, recordType string, timeLimit time.Duration) { timeLimitStamp := time.Now().UTC().Add(-timeLimit).Format("2006-01-02 15:04:05") // db query @@ -150,12 +150,18 @@ func deleteOldRecords(txDao *daos.Dao, collections []string, recordType string, var records []*models.Record for _, collection := range collections { - if collectionRecords, err := txDao.FindRecordsByExpr(collection, expType, expCreated); err == nil { + if collectionRecords, err := app.Dao().FindRecordsByExpr(collection, expType, expCreated); err == nil { records = append(records, collectionRecords...) } } - for _, record := range records { - txDao.DeleteRecord(record) - } + app.Dao().RunInTransaction(func(txDao *daos.Dao) error { + for _, record := range records { + err := txDao.DeleteRecord(record) + if err != nil { + return err + } + } + return nil + }) }