perf(site_cache): reduce access to frappe.local namespace
This change also allows calling @site_cache during init, as long as `site` parameter is set.
This commit is contained in:
parent
531b9a3e3d
commit
3675f3c797
1 changed files with 6 additions and 8 deletions
|
|
@ -122,7 +122,7 @@ def site_cache(ttl: int | None = None, maxsize: int | None = None) -> Callable:
|
|||
|
||||
@wraps(func)
|
||||
def site_cache_wrapper(*args, **kwargs):
|
||||
if getattr(frappe.local, "initialised", None):
|
||||
if site := getattr(frappe.local, "site", None):
|
||||
func_call_key = json.dumps((args, kwargs))
|
||||
|
||||
if hasattr(func, "ttl") and datetime.datetime.now(datetime.timezone.utc) >= func.expiration:
|
||||
|
|
@ -131,15 +131,13 @@ def site_cache(ttl: int | None = None, maxsize: int | None = None) -> Callable:
|
|||
seconds=func.ttl
|
||||
)
|
||||
|
||||
if hasattr(func, "maxsize") and len(_SITE_CACHE[func_key][frappe.local.site]) >= func.maxsize:
|
||||
_SITE_CACHE[func_key][frappe.local.site].pop(
|
||||
next(iter(_SITE_CACHE[func_key][frappe.local.site])), None
|
||||
)
|
||||
if hasattr(func, "maxsize") and len(_SITE_CACHE[func_key][site]) >= func.maxsize:
|
||||
_SITE_CACHE[func_key][site].pop(next(iter(_SITE_CACHE[func_key][site])), None)
|
||||
|
||||
if func_call_key not in _SITE_CACHE[func_key][frappe.local.site]:
|
||||
_SITE_CACHE[func_key][frappe.local.site][func_call_key] = func(*args, **kwargs)
|
||||
if func_call_key not in _SITE_CACHE[func_key][site]:
|
||||
_SITE_CACHE[func_key][site][func_call_key] = func(*args, **kwargs)
|
||||
|
||||
return _SITE_CACHE[func_key][frappe.local.site][func_call_key]
|
||||
return _SITE_CACHE[func_key][site][func_call_key]
|
||||
|
||||
return func(*args, **kwargs)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue