I used the officially recommended flask-caching lib for cache my api results.
I currently have a problem with the following routing request.
# cache config part
cache = Cache(config={
'DEBUG': True if os.environ.get('FLASK_ENV') == 'development' else False,
'CACHE_TYPE': 'FileSystemCache',
'CACHE_DEFAULT_TIMEOUT': 30 * 60, # 30min
'CACHE_DIR': os.path.join(os.path.abspath(os.path.dirname(__file__)), 'cache'),
'CACHE_THRESHOLD': 1,
})
# route part
@api.get('/search')
@cache.cached(query_string=True)
def search():
search = request.args.get('q', '')
# query db
...
return result
For different request parameters, it does generate new cache file, but at the same time, the previous files are also deleted.
So this is my problem. I cannot generate corresponding cache files for different request parameters.
The general steps are as follows:
- request
/search?q=a
, generate cache file A - request
/search?q=b
, generate cache file B, and file A was gone - re-request
/search?q=a
, re-generate cache file A, and file B was gone
I hope that different request parameters can generate different cache files for a single route.