Merge pull request #74 from Genius-Voice/feature/support-async-keybuilder

Add ability to use async function for key_builder
This commit is contained in:
long2ice
2022-11-03 20:25:27 +08:00
committed by GitHub

View File

@@ -107,9 +107,25 @@ def cache(
key_builder = key_builder or FastAPICache.get_key_builder()
backend = FastAPICache.get_backend()
cache_key = key_builder(
func, namespace, request=request, response=response, args=args, kwargs=copy_kwargs
)
if inspect.iscoroutinefunction(key_builder):
cache_key = await key_builder(
func,
namespace,
request=request,
response=response,
args=args,
kwargs=copy_kwargs
)
else:
cache_key = key_builder(
func,
namespace,
request=request,
response=response,
args=args,
kwargs=copy_kwargs
)
ttl, ret = await backend.get_with_ttl(cache_key)
if not request:
if ret is not None: