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  }