死简单内存缓存
simple-memory-cache的Python项目详细描述
简单内存缓存
一个死的简单内存缓存,允许在需要时轻松地加载变量。 只有43行代码,没有依赖关系。在
这个模块由我们目前正在开发的SpinHub应用程序(https://www.spinhub.ca)使用。它允许我们在内存中缓存变量,以便在成功执行AWS Lambda函数时重用。在
用例1:缓存响应
我们的一个特定用例是缓存Auth0域的de JWKS(JSON Web密钥集):
importrequestsfromsimple_memory_cacheimportGLOBAL_CACHEAUTH0_DOMAIN='mysubdomain.auth0.com'JWKS_URL=AUTH0_DOMAIN+'/.well-known/jwks.json'jwks_var=GLOBAL_CACHE.MemoryCachedVar('jwks')@jwks.on_first_accessdef_retrieve_jwks():returnrequests.get(JWKS_URL).json()defdo_something():# First call will trigger _retrieve_jwks and store the return value.# If this is called within the same AWS Lambda instance, the global context will still be there# and the value will simply be returnedjwks=jwks_var.get()try:(validateJWTtokenw/jwks)except(ValidationError):# On a validation error, Auth0 recommends to refetch the JWKS in case it changed.# We invalidate the value and get it once again.jwks_var.invalidate()jwks=jwks_var.get()(validateJWTtokenw/jwks)
用例2:Flask Globals的具体实现
我们经常遇到这样的情况:我们只希望在没有设置烧瓶g的情况下设置它。 您可以用5行代码创建适合这种情况的内存缓存:
^{pr2}$创造者
由Tack Verification创建,这家公司致力于降低与硬件系统验证相关的运营成本。 https://www.tackv.ca
- 项目
标签: