2016-05-12 6 views
0

Ich habe eine Flasche App hinter Apache, die grundlegende Auth implementiert. Der Benutzername und das Passwort werden in einer booleschen Funktion check_auth gegen einen externen Dienst verifiziert.Cache-Flask Funktion Ergebnisse über den Prozess?

Ich möchte den Benutzernamen und das Passwort zwischenspeichern, wenn sie korrekt sind, um die Belastung des externen Dienstes zu reduzieren.

from werkzeug.contrib.cache import SimpleCache 

cache = SimpleCache() 

def check_auth(username, password): 
    if cache.get(username) == password or ext_service_check(username, password): 
     cache.set(username, password, 300) 
     return True 
    else: 
     return False 

Apache Allerdings beginnt immer mehrere Prozesse und das macht ich denke, dass, wenn zwei Anfragen mit den gleichen grundlegenden auth-Header in kommen, sie eine hohe Chance, nicht den gleichen Prozess haben schlagen und somit keinen Vorteil aus dem Cache nehmen .

Auf welchem ​​Level lebt dieser Cache?

Wird SimpleCache hier keinen Vorteil bieten?

Antwort

1

Die docs Liste mehrere Cache-Systeme. SimpleCache ist "für einzelne Prozessumgebungen", es funktioniert nicht über mehrere Prozesse hinweg. Direkt darunter befindet sich eine Liste anderer Cache-Backends; Verwenden Sie ein für Ihre Umgebung geeignetes Gerät. Memcache und Redis sind gute integrierte Optionen, oder Sie können Ihre eigene Unterklasse schreiben, wenn Sie ein anderes System benötigen.

Verwandte Themen