Flask-кэширование использует UWSGI-кеш с NGINX - PullRequest
0 голосов
/ 30 августа 2018

UWSGI подключен к приложению с колбой для UNIX-сокета:

NGINX (СЛУШАТЬ В ПОРТ 80) <-> UWSGI (LISTER PERL UNIX-SOCKER) <-> FLASK-APP

Я инициализировал кеш uwsgi для обработки глобальных данных. Я хочу обработать кеш с помощью пакета python-кеширования пакета.

Я пытаюсь запустить экземпляр Cache с правильным адресом кэша. Кажется, что-то не так. Я думаю, что параметры для app.run () не имеют отношения к uwsgi.

Если я устанавливаю запись в кеше, она всегда возвращает None:

app.route("/")
def test():
    cache.set("test", "OK", timeout=0)
    a = cache.get("test")
    return a

main.py

from flask import Flask
from flask_caching import Cache

app = Flask(__name__)
# Check Configuring Flask-Caching section for more details
cache = Cache(app, config={'CACHE_TYPE': 'uwsgi', 'CACHE_UWSGI_NAME':'mycache@localhost'})

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=5000)

uwsgi.ini

[uwsgi]
module = main
callable = app
cache2 = name=mycache,items=100

nginx.conf

server {
    listen 80;
    location / {
        try_files $uri @app;
    }
    location @app {
        include uwsgi_params;
        uwsgi_pass unix:///tmp/uwsgi.sock;
    }
    location /static {
        alias /app/testapp/static;
    }
}

Я работаю со сборкой докера с https://github.com/tiangolo/uwsgi-nginx-flask-docker. Приложение работает, ожидайте кеш.

...