Tôi đã theo dõi tutorial của Flask-Cache và cố gắng tự thực hiện. Đưa ra ví dụ sau, tại sao Flask không cache thời gian?Bộ nhớ cache trong bộ nhớ cache không lưu vào bộ nhớ 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()
Đầu ra luôn là thời gian hiện tại.
Dường như bộ nhớ cache được tạo lại theo từng yêu cầu. Tôi đang làm gì sai?
Edit: Tôi thực hiện python-file sau đây với 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()
Tôi không thể tạo lại điều này; khi chạy với Flask với máy chủ phát triển 'app.run()' được đóng gói, thời gian được lưu trữ. Làm thế nào bạn đang chạy này? –
Lưu ý rằng 'SimpleCache' là * từ điển toàn cục *. Nếu bạn đang sử dụng một máy chủ WSGI sử dụng đa xử lý để mở rộng quy mô, bạn sẽ nhận được các bản sao riêng biệt và chúng sẽ xuất hiện không để bộ nhớ cache. –
Cảm ơn Martijn, tôi đang chạy nó cục bộ và không triển khai nó đến bất kỳ máy chủ wsgi nào. Tôi đã thêm bản thảo của tôi – Frame91