在不依赖第三方产品的时候, 缓存的方式有很多, Python的依赖库也可以实现, 但我们使用原生的纯Python代码来实现呢?
PS:代码平庸功能无用
#!/usr/bin/env python
# _*_ coding: UTF-8 _*_
import time
DATA = dict(test=123)
TIMEOUT = dict(test=[1586314221.3422256, 123])
def timeout(second: (float, int)):
def decorator(func):
def wrapper(keyword):
if keyword not in DATA.keys(): return f'Not found "{keyword}"'
if (not TIMEOUT.get(keyword)) or (time.time() - float(TIMEOUT.get(keyword)[0]) >= float(second)):
result = func(keyword)
TIMEOUT[keyword][0] = time.time()
print('-- 获取的是最新的数据内容 --')
return result
result = TIMEOUT.get(keyword)[1]
TIMEOUT[keyword][0] = time.time()
print('-- 获取的是缓存的数据内容 --')
return result
return wrapper
return decorator
@timeout(10)
def cache(keyword):
""" Python Cache """
return DATA.get(keyword)