package main import ( "context" "log" "os" "sync" "time" "git.sapphic.engineer/ps2.live/saerro-go/store" "git.sapphic.engineer/ps2.live/saerro-go/util" ) func main() { db, err := util.GetDBConnection(os.Getenv("DATABASE_ADDR")) if err != nil { log.Fatalln(err) } playerStore := store.NewPlayerStore(db) vehicleStore := store.NewVehicleStore(db) ctx, cancel := context.WithTimeout(context.Background(), time.Second*30) defer cancel() for { run(ctx, playerStore, vehicleStore) time.Sleep(5 * time.Minute) } } func run(ctx context.Context, ps store.IPlayerStore, vs store.IVehicleStore) { var wg sync.WaitGroup wg.Add(1) go func() { defer wg.Done() i, err := ps.Prune(ctx) if err != nil { log.Println("pruner: playerStore.Prune failed") } log.Printf("pruner: deleted %d players", i) }() wg.Add(1) go func() { defer wg.Done() i, err := vs.Prune(ctx) if err != nil { log.Println("pruner: vehicleStore.Prune failed") } log.Printf("pruner: deleted %d vehicles", i) }() wg.Wait() }