Ich folgte einem tutorial Flask-Cache und versuchte es selbst zu implementieren. Gegeben das folgende Beispiel, warum sollte Flask die Zeit nicht zwischenspeichern?Flask Cache nicht im Cache
from flask import Flask
import time
app = Flask(__name__)
cache = Cache(config={'CACHE_TYPE': 'simple'})
cache.init_app(app)
@app.route('/time')
@cache.cached(timeout=50, key_prefix='test')
def test():
return time.ctime()
Ausgabe ist immer die aktuelle Zeit.
Es scheint, als ob der Cache jede einzelne Anforderung neu erstellt wird. Was mache ich falsch?
Edit: Ich führen Sie das folgende Python-Datei mit Python 2.7.6:
def runserver():
port = int(os.environ.get('PORT', 5000))
Triangle(app)
app.run(host='0.0.0.0', port=port, processes=5)
if __name__ == '__main__':
runserver()
Ich kann dies nicht reproduzieren; Beim Ausführen mit Flask mit dem mitgelieferten 'app.run()' -Entwicklungsserver wird die Zeit zwischengespeichert. Wie läuft es dir? –
Beachten Sie, dass 'SimpleCache' ein * globales Wörterbuch * ist. Wenn Sie einen WSGI-Server verwenden, der Multiprocessing zum Skalieren verwendet, erhalten Sie separate Kopien, die scheinbar nicht zwischengespeichert werden. –
Danke Martijn, ich benutze es lokal und stelle es nicht auf irgendeinem wsgi-Server bereit. Ich habe mein Skript hinzugefügt – Frame91