mirror of
https://github.com/long2ice/fastapi-cache.git
synced 2026-03-25 04:57:54 +00:00
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:
@@ -107,9 +107,25 @@ def cache(
|
|||||||
key_builder = key_builder or FastAPICache.get_key_builder()
|
key_builder = key_builder or FastAPICache.get_key_builder()
|
||||||
backend = FastAPICache.get_backend()
|
backend = FastAPICache.get_backend()
|
||||||
|
|
||||||
cache_key = key_builder(
|
if inspect.iscoroutinefunction(key_builder):
|
||||||
func, namespace, request=request, response=response, args=args, kwargs=copy_kwargs
|
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)
|
ttl, ret = await backend.get_with_ttl(cache_key)
|
||||||
if not request:
|
if not request:
|
||||||
if ret is not None:
|
if ret is not None:
|
||||||
|
|||||||
Reference in New Issue
Block a user