Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"availability" zu langsam in CommonsBooking API #1694

Open
nelarsen opened this issue Dec 12, 2024 · 1 comment
Open

"availability" zu langsam in CommonsBooking API #1694

nelarsen opened this issue Dec 12, 2024 · 1 comment

Comments

@nelarsen
Copy link
Contributor

Für unsere Karte auf friedafriedrich.de (und künftig Teilrad Sachsen) nutzen wir die CommonsBooking API. Leider ist die "availability"-Abfrage (Link) oft sehr langsam (bis über 5s - insbesondere wenn die Buchungslage sich seit dem letzten Aufruf verändert hat) und es verzögert die Anzeige der Lastenräder auf der Karte merklich. Unsere Karte verwendet daher nicht die "availability"-Abfrage von commonsbooking, sondern einen täglichen Cache davon (Link). Ich würde zur Karte gern einen "heute verfügbar"-Filter hinzufügen oder "Verfügbar am dd.mm.yyyy", aber bräuchte dann immer die aktuelle Buchungslage keinen stundenalten Cache.

Was macht die Verfügbarkeitstabelle anders? Sie enthält die gleichen Daten wie "availability", aber ist eine Größenordnung schneller.

Bei "availability" stört außerdem etwas, dass sie nur Daten für die nächsten 14 Tage zurückgibt (Wert nicht konfigurierbar) und ich erkenne im Code gar nicht, wo das so vorgegeben ist.

@datengraben
Copy link
Contributor

@nelarsen

Das Problem der Performance ist ja schon an andere Stelle diskutiert worden. Die jüngste Diskussion mit konkretem Lösungsvorschlag liegt in diesem Issue und könnte eure bisherige Vorgehensweise mit dem Cache unterstützen. Diese Lösung ist von hans dort beschrieben. Kurz: Ihr könntet den Cache (unabhängig vom Aufrufer/Aufrufzeitpunkt) regelmäßig (z.B. alle 5 oder 10 Minuten) neu berechnen.

Bis zur Umsetzung des Vorschlags von Hans kannst du versuchen den Cache durch regelmäßigen Aufruf (von außen, z.B. per cronjob/Skript) selber zu erneuern. Dann brauchst du dich nicht auf die schnell veralteten Tages-Werte zu verlassen.

Der Code für die Einstellung der 14 Tage ist hier: https://github.com/wielebenwir/commonsbooking/blob/master/src/API/AvailabilityRoute.php#L49

@datengraben datengraben added performance and removed bug Something isn't working triage labels Dec 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Development

No branches or pull requests

2 participants