SmC*_*lar 5 python caching flask uwsgi gunicorn
让我们假设我将 Flask 与文件系统缓存与 uWSGI 或 gunicorn 结合使用,它们中的任何一个都启动多个进程或工作程序。所有这些进程共享同一个缓存吗?或者换个方式问,无论进程 pid、线程状态等如何,函数和参数是否总是评估为相同的缓存键?
例如,请考虑以下最小示例:
import time
from flask import Flask, jsonify
from flask_caching import Cache
app = Flask(__name__)
cache = Cache(app, config={
'CACHE_TYPE': 'filesystem',
'CACHE_DIR': 'my_cache_directory',
'CACHE_DEFAULT_TIMEOUT': 3600,
})
@cache.memoize()
def compute(param):
time.sleep(5)
return param + 1
@app.route('/')
@app.route('/<int:param>')
def main(param=41):
expensive = compute(param)
return jsonify({"Hello expensive": expensive})
if __name__ == '__main__':
app.run()
Run Code Online (Sandbox Code Playgroud)
将www.example.com/41只需要5秒一次,然后(3600秒)可立即无论uWSGI的或gunicorn工人?
| 归档时间: |
|
| 查看次数: |
2657 次 |
| 最近记录: |