Beschreibung
Wenn das Stundenlimit erreicht ist, sollen Nutzer in eine Warteschlange gestellt werden statt nur eine Fehlermeldung zu sehen. Sobald ein Slot frei wird (rollender Eintrag faellt raus), bekommt der naechste in der Queue automatisch seinen Platz.
Motivation
Andere Trainer die malziME self-hosten haben nicht unbedingt die Moeglichkeit, per Boost-Button manuell einzugreifen. Eine automatische Warteschlange macht das Tool selbststaendig nutzbar.
Konzept
- Token: Zufaellig generiert, in
sessionStorage (kein Cookie, kein Tracking)
- Polling als Heartbeat: Client pollt alle 10s
/api/queue/status?token=xxx. Kein Poll fuer 60s → Platz wird freigegeben.
- Ablauf: Limit erreicht → Token + Position → Polling → Slot frei + Erster → 30s Zeitfenster fuer Analyse → Slot verbraucht
- UI: "Du bist Platz X in der Warteschlange" statt "Limit erreicht"
Offene Fragen
- Firestore-Kosten bei vielen Heartbeats (alle 10s pro wartendem User)?
- Alternative: Realtime-Listener statt Polling (Firebase SDK self-hosted)?
- Max. Queue-Laenge begrenzen?
Abhaengigkeiten
- Setzt das rollende Fenster voraus (v1.2.0,
recentAnalyses-Array)
Beschreibung
Wenn das Stundenlimit erreicht ist, sollen Nutzer in eine Warteschlange gestellt werden statt nur eine Fehlermeldung zu sehen. Sobald ein Slot frei wird (rollender Eintrag faellt raus), bekommt der naechste in der Queue automatisch seinen Platz.
Motivation
Andere Trainer die malziME self-hosten haben nicht unbedingt die Moeglichkeit, per Boost-Button manuell einzugreifen. Eine automatische Warteschlange macht das Tool selbststaendig nutzbar.
Konzept
sessionStorage(kein Cookie, kein Tracking)/api/queue/status?token=xxx. Kein Poll fuer 60s → Platz wird freigegeben.Offene Fragen
Abhaengigkeiten
recentAnalyses-Array)