Распределен ли кэш файловой системы Flask Caching между процессами? - PullRequest
0 голосов
/ 24 февраля 2019

Давайте предположим, что я использую 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?

1 Ответ

0 голосов
/ 16 марта 2019

Если я запускаю его локально на моей машине, кэш-память стабильна для разных процессов, а также даже для разных перезапусков всего сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...