Öffnungszeiten: Speicher mit Versionen und Cache
LRU-Speicher mit Ablaufzeit (lru.js), Cache-Instanz der öffentlichen Antwort (cache.js: 500 Einträge, 30 s) und Appwrite-Speicher mit getrennten Versionen für Kundendaten und Team-Einstellungen (speicher.js), alle Schreibzugriffe unter der Sperre zeiten:<projectId>. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
88fb9263f9
commit
097036c9a5
5 files changed
+1034
No files matched your search
@@ -0,0 +1,18 @@
|
||||
import { neuerLru } from './lru.js'
|
||||
|
||||
/**
|
||||
* Speicher der oeffentlichen Zeiten-Antwort (Spezifikation 2026-10-04-oeffnungszeiten-live-design.md, Abschnitt 4: 30 Sekunden,
|
||||
* als LRU hoechstens 500 Eintraege). Schluessel = siteKey. Wer Zeiten oder Team-Einstellungen schreibt, ruft vergissZeiten;
|
||||
* wer eine Antwort baut, legt sie mit zeitenCache.setze(siteKey, antwort, jetztMs) ab und holt sie mit hole (undefined = nicht da).
|
||||
* Ein Eintrag verfaellt 30 Sekunden nach dem Setzen, auch ohne Speichern (Zustandswechsel der Funktion wirken so mit hoechstens 30 s Verzoegerung).
|
||||
*/
|
||||
export const zeitenCache = neuerLru({ max: 500, ttlMs: 30000 })
|
||||
|
||||
/** Entfernt die Antwort dieses siteKeys (nach jedem Schreiben). Unbekannte oder fehlende Schluessel schaden nicht. */
|
||||
export function vergissZeiten(siteKey) {
|
||||
zeitenCache.vergiss(siteKey)
|
||||
}
|
||||
|
||||
export function resetZeitenCacheForTests() {
|
||||
zeitenCache.leere()
|
||||
}
|
||||
Reference in new issue
Block a user