【发布时间】:2016-01-03 16:52:38
【问题描述】:
我关注了 Flask-Cache 的 tutorial 并尝试自己实现它。 举个例子,Flask为什么不缓存时间呢?
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()
输出始终是当前时间。
似乎每个请求都会重新创建缓存。我做错了什么?
编辑:我使用 Python 2.7.6 执行以下 python 文件:
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()
【问题讨论】:
-
我无法重现这个;使用捆绑的
app.run()开发服务器运行 Flask 时,时间被缓存。你是怎么运行这个的? -
请注意,
SimpleCache是一个全局字典。如果您使用的是使用多处理来横向扩展的 WSGI 服务器,您将获得单独的副本,并且它们似乎不会缓存。 -
感谢 Martijn,我在本地运行它,而不是将它部署到任何 wsgi 服务器。我添加了我的运行脚本
标签: python caching flask flask-cache