Die Häufigkeit der Ausführung des Algorithmus kann nun gesteuert werden
This commit is contained in:
parent
fc32a93522
commit
05c39558ea
2 changed files with 17 additions and 12 deletions
|
@ -15,6 +15,7 @@ services:
|
||||||
- MAX_RESULTS=200
|
- MAX_RESULTS=200
|
||||||
- DURATION=240
|
- DURATION=240
|
||||||
- DELETE_AFTER_MINUTES=30
|
- DELETE_AFTER_MINUTES=30
|
||||||
|
- UPDATE_INTERVAL_MINUTES=3
|
||||||
# Hildesheim HBF, Braunschweig HBF, Hannover HBF
|
# Hildesheim HBF, Braunschweig HBF, Hannover HBF
|
||||||
- STATION_IDS=8000169,8000049,8000152
|
- STATION_IDS=8000169,8000049,8000152
|
||||||
restart: always
|
restart: always
|
||||||
|
|
28
main.go
28
main.go
|
@ -78,6 +78,12 @@ func main() {
|
||||||
}
|
}
|
||||||
stationIDs := strings.Split(os.Getenv("STATION_IDS"), ",")
|
stationIDs := strings.Split(os.Getenv("STATION_IDS"), ",")
|
||||||
|
|
||||||
|
updateInterval, err := strconv.Atoi(os.Getenv("UPDATE_INTERVAL_MINUTES"))
|
||||||
|
if err != nil || updateInterval <= 0 {
|
||||||
|
log.Println("Ungültiger oder fehlender Wert für UPDATE_INTERVAL_MINUTES, verwende Standardwert von 1 Minute")
|
||||||
|
updateInterval = 1
|
||||||
|
}
|
||||||
|
|
||||||
db, err := sql.Open("mysql", dbDSN)
|
db, err := sql.Open("mysql", dbDSN)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal("Fehler beim Verbinden mit der Datenbank: ", err)
|
log.Fatal("Fehler beim Verbinden mit der Datenbank: ", err)
|
||||||
|
@ -85,25 +91,23 @@ func main() {
|
||||||
defer db.Close()
|
defer db.Close()
|
||||||
|
|
||||||
ticker := time.NewTicker(5 * time.Minute)
|
ticker := time.NewTicker(5 * time.Minute)
|
||||||
|
updateTicker := time.NewTicker(time.Duration(updateInterval) * time.Minute)
|
||||||
defer ticker.Stop()
|
defer ticker.Stop()
|
||||||
|
defer updateTicker.Stop()
|
||||||
|
|
||||||
for {
|
for {
|
||||||
for _, stationID := range stationIDs {
|
|
||||||
departures := fetchDepartures(apiBaseURL, stationID, duration)
|
|
||||||
for _, dep := range departures {
|
|
||||||
savePosition(db, dep, apiBaseURL)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
deleteOldEntries(db, deleteAfter)
|
|
||||||
|
|
||||||
select {
|
select {
|
||||||
|
case <-updateTicker.C:
|
||||||
|
for _, stationID := range stationIDs {
|
||||||
|
departures := fetchDepartures(apiBaseURL, stationID, duration)
|
||||||
|
for _, dep := range departures {
|
||||||
|
savePosition(db, dep, apiBaseURL)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
deleteOldEntries(db, deleteAfter)
|
||||||
case <-ticker.C:
|
case <-ticker.C:
|
||||||
logDatabaseStats(db)
|
logDatabaseStats(db)
|
||||||
default:
|
|
||||||
// Do nothing
|
|
||||||
}
|
}
|
||||||
|
|
||||||
time.Sleep(1 * time.Minute)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue