Flask缓存文件系统缓存是否跨进程共享?

问题描述 投票:1回答:1

让我们假设我将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()

www.example.com/41只需要5秒钟,然后(3600秒)可以立即使用,无论uWSGI或gunicorn工作人员如何?

python caching flask gunicorn uwsgi
1个回答
0
投票

如果我在我的机器上本地运行它,缓存在不同的进程中是稳定的,甚至是整个服务器的不同重启。

© www.soinside.com 2019 - 2024. All rights reserved.