package cleaners import ( "time" "github.com/rs/zerolog/log" "git.mstar.dev/mstar/linstrom/storage-new/dbgen" ) const maxServerAge = time.Hour * 24 * 30 // One month func init() { cleanerBuilders = append(cleanerBuilders, buildKillDeadServers) } // Marks all servers where the last interaction time is older than maxServerAge func tickKillDeadServers(now time.Time) { _, err := dbgen.RemoteServer.Where(dbgen.RemoteServer.LastInteraction.Lt(now.Add(-maxServerAge)), dbgen.RemoteServer.IsSelf.Is(false)). UpdateColumn(dbgen.RemoteServer.IsDead, true) if err != nil { log.Error(). Err(err). Msg("Failed to mark servers without interaction for over a 30 days as dead") } } func buildKillDeadServers() (onTick func(time.Time), name string, tickSpeed time.Duration) { return tickKillDeadServers, "kill-dead-servers", time.Hour }