2016-06-15 31 views
1

私は以下の3つのファイルを持っています。Python Flaskキャッシュのクリアが機能しない

app.py

from flask_restful import Api 
from lib import globals 
from flask import Flask 
from flask.ext.cache import Cache 

globals.algos_app = Flask(__name__) 

#cache in file system 
globals.cache = Cache(globals.algos_app, config={'CACHE_TYPE': 'filesystem', 'CACHE_DIR': '/tmp'}) 

api = Api(globals.algos_app) 
api.add_resource(Test, '/test') 

if __name__ == '__main__': 
    globals.algos_app.run(host='0.0.0.0', debug=True) 

globals.py

global algos_app 
global cache 

Test.py

from flask_restful import Resource 
from lib import globals 
from flask_restful import Resource 
import time 

class Test(Resource): 

    def get(self): 
     return self.someMethod() 

    def post(self): 
     globals.cache.clear() 
     return self.someMethod() 

    @globals.cache.cached() 
    def someMethod(self): 
     return str(time.ctime()) 

私はキャッシュからの値に必要GET方法を持っているとPOSTキャッシュを最初にクリアすることによってキャッシュを更新する方法。

しかし、私はGETまたはPOSTメソッドを呼び出しても、常にキャッシュから値を取得します。

PS:現時点では開発サーバーでテストしていますが、後でWSGIを使用して展開する必要があります。

答えて

0

私はそれが最良の方法であるかどうかはわかりませんが、私は以下の方法でそれを行いました。

class Test(Resource): 

    def get(self): 
     return globals.cache.get('curr_time') 

    def post(self): 
     result = self.someMethod() 
     globals.cache.set('curr_time', result, timeout=3600) 

    def someMethod(self): 
     return str(time.ctime()) 
関連する問題