fix(cache): 修复fresh会被错误覆盖的问题

This commit is contained in:
Attente
2025-11-23 16:46:09 +08:00
parent d749d59cad
commit 91eb35a77b
+2 -6
View File
@@ -1024,13 +1024,11 @@ def fresh(fresh: bool = True):
with fresh(): with fresh():
result = some_cached_function() result = some_cached_function()
""" """
token = _fresh.set(fresh) token = _fresh.set(fresh or is_fresh())
logger.debug(f"Setting fresh mode to {fresh}. {id(token):#x}")
try: try:
yield yield
finally: finally:
_fresh.reset(token) _fresh.reset(token)
logger.debug(f"Reset fresh mode. {id(token):#x}")
@asynccontextmanager @asynccontextmanager
async def async_fresh(fresh: bool = True): async def async_fresh(fresh: bool = True):
@@ -1041,13 +1039,11 @@ async def async_fresh(fresh: bool = True):
async with async_fresh(): async with async_fresh():
result = await some_async_cached_function() result = await some_async_cached_function()
""" """
token = _fresh.set(fresh) token = _fresh.set(fresh or is_fresh())
logger.debug(f"Setting async_fresh mode to {fresh}. {id(token):#x}")
try: try:
yield yield
finally: finally:
_fresh.reset(token) _fresh.reset(token)
logger.debug(f"Reset async_fresh mode. {id(token):#x}")
def is_fresh() -> bool: def is_fresh() -> bool:
""" """