Ho seguito un tutorial di Flask-Cache e ho provato a implementarlo da solo. Dato il seguente esempio, perché Flask non memorizzerà l'ora nel cache?Flask Cache not caching
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()
L'uscita è sempre l'ora corrente.
Sembra che la cache venga ricreata ogni singola richiesta. Che cosa sto facendo di sbagliato?
Edit: ho eseguire il seguente python-file con 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()
Non riesco a riprodurre questo; quando si esegue con Flask con il server di sviluppo 'app.run()' in bundle, l'ora viene memorizzata nella cache. Come stai correndo questo? –
Si noti che 'SimpleCache' è un * dizionario globale *. Se si utilizza un server WSGI che utilizza la multiprocessing per ridimensionare, si otterranno copie separate e appariranno non in cache. –
Grazie Martijn, lo sto eseguendo localmente e non lo sto distribuendo su alcun server wsgi. Ho aggiunto il mio runscript – Frame91