diff --git a/docker-compose.yml b/docker-compose.yml index ed7926c..b8580c9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,6 +15,7 @@ services: - API_BASE_URL=http://db-rest:3000 - MAX_RESULTS=200 - DURATION=240 + - DELETE_AFTER_MINUTES=30 - BUS=false - FERRY=false - TRAM=false diff --git a/main.go b/main.go index b7330aa..ad0c521 100644 --- a/main.go +++ b/main.go @@ -63,6 +63,10 @@ func main() { if err != nil { log.Fatalf("Ungültiger Wert für TAXI: %v", err) } + deleteAfter, err := strconv.Atoi(os.Getenv("DELETE_AFTER_MINUTES")) + if err != nil { + log.Fatalf("Ungültiger Wert für DELETE_AFTER_MINUTES: %v", err) + } stationIDs := strings.Split(os.Getenv("STATION_IDS"), ",") db, err := sql.Open("mysql", dbDSN) @@ -78,6 +82,7 @@ func main() { savePosition(db, dep) } } + deleteOldEntries(db, deleteAfter) time.Sleep(1 * time.Minute) } } @@ -146,3 +151,14 @@ func savePosition(db *sql.DB, dep Departure) { log.Printf("Fehler bei der Überprüfung des existierenden Eintrags: %v\n", err) } } + +func deleteOldEntries(db *sql.DB, deleteAfterMinutes int) { + deleteTime := time.Now().Add(time.Duration(-deleteAfterMinutes) * time.Minute) + result, err := db.Exec("DELETE FROM trips WHERE timestamp < ?", deleteTime) + if err != nil { + log.Printf("Fehler beim Löschen alter Einträge: %v\n", err) + return + } + rowsAffected, _ := result.RowsAffected() + log.Printf("%d alte Einträge gelöscht\n", rowsAffected) +}