Frage

Ich habe a entwickelt Python Client Library, Das ist ein Client-Wrapper für eine Web-API: Eine schöne Funktion wäre ein lokaler Cache-Mechanismus: Dies würde Zeit und Bandbreite sparen, wenn die Bibliotheksclients zu unterschiedlichen Zeiten die gleiche Anfrage in der Web-API aufrufen.

Ich habe nur sehr wenige Anforderungen

  1. Der Cache muss entwickelt werden (keine externen Bibliotheken) und Python 2.6/2.7 Envs ausführen
  2. Die Bibliothek muss eine einheitliche Schnittstelle bereitstellen, sodass es möglich ist, den externen Cache-Mechanismus (z.
  3. Der Cache sollte thread-safe sein
  4. Der zwischengespeicherte Inhalt ist die JSON -Nutzlast der Web -API -Antworten.
  5. Die von der Web -API bereitgestellten Daten variieren zu verschiedenen Zeitratten: Beispielsweise kann das derzeit beobachtete Wetter über eine Stadt jede Stunde variieren, während die 15 -Tage -Wettervorhersage alle 5 Tage oder so variieren kann.

Was ist der einfachste Algorithmus, der verwendet werden kann?

Ich habe über einen LRU -Algorithmus nachgedacht, aber ich denke, dass andere Alternativen bewertet werden können - ich bin überhaupt nicht Experte für Caches!

War es hilfreich?

Lösung

Sie können einfach die Quelle von LRU_Cache kopieren und anpassen (siehe http://hg.python.org/cpython/file/default/lib/functools.py).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top