github.com/safing/portbase@v0.19.5/database/dbmodule/maintenance.go (about) 1 package dbmodule 2 3 import ( 4 "context" 5 "time" 6 7 "github.com/safing/portbase/database" 8 "github.com/safing/portbase/log" 9 "github.com/safing/portbase/modules" 10 ) 11 12 func startMaintenanceTasks() { 13 module.NewTask("basic maintenance", maintainBasic).Repeat(10 * time.Minute).MaxDelay(10 * time.Minute) 14 module.NewTask("thorough maintenance", maintainThorough).Repeat(1 * time.Hour).MaxDelay(1 * time.Hour) 15 module.NewTask("record maintenance", maintainRecords).Repeat(1 * time.Hour).MaxDelay(1 * time.Hour) 16 } 17 18 func maintainBasic(ctx context.Context, task *modules.Task) error { 19 log.Infof("database: running Maintain") 20 return database.Maintain(ctx) 21 } 22 23 func maintainThorough(ctx context.Context, task *modules.Task) error { 24 log.Infof("database: running MaintainThorough") 25 return database.MaintainThorough(ctx) 26 } 27 28 func maintainRecords(ctx context.Context, task *modules.Task) error { 29 log.Infof("database: running MaintainRecordStates") 30 return database.MaintainRecordStates(ctx) 31 }