create helper functions for clearing caches

This commit is contained in:
Swifty
2025-10-02 11:09:31 +02:00
parent e13861ad33
commit e75cf2b765
3 changed files with 31 additions and 43 deletions

View File

@@ -928,7 +928,7 @@ async def execute_graph(
cache.get_cached_graphs_executions.cache_delete(
user_id=user_id, page=1, page_size=250
)
for page in range(1, 10):
for page in range(1, 20):
cache.get_cached_graph_execution.cache_delete(
graph_id=graph_id, user_id=user_id, version=graph_version
)

View File

@@ -27,6 +27,19 @@ router = APIRouter(
)
def _clear_presets_list_cache(user_id: str, num_pages: int = 20):
"""
Clear the presets list cache for the given user.
"""
for page in range(1, num_pages):
library_cache.get_cached_library_presets.cache_delete(
user_id=user_id, page=page, page_size=10
)
library_cache.get_cached_library_presets.cache_delete(
user_id=user_id, page=page, page_size=20
)
@router.get(
"/presets",
summary="List presets",
@@ -146,14 +159,7 @@ async def create_preset(
else:
result = await db.create_preset_from_graph_execution(user_id, preset)
# Clear presets list cache after creating new preset
for page in range(1, 5):
library_cache.get_cached_library_presets.cache_delete(
user_id=user_id, page=page, page_size=10
)
library_cache.get_cached_library_presets.cache_delete(
user_id=user_id, page=page, page_size=20
)
_clear_presets_list_cache(user_id)
return result
except NotFoundError as e:
@@ -223,14 +229,7 @@ async def setup_trigger(
),
)
# Clear presets list cache after creating new preset
for page in range(1, 5):
library_cache.get_cached_library_presets.cache_delete(
user_id=user_id, page=page, page_size=10
)
library_cache.get_cached_library_presets.cache_delete(
user_id=user_id, page=page, page_size=20
)
_clear_presets_list_cache(user_id)
return new_preset
@@ -315,13 +314,8 @@ async def update_preset(
library_cache.get_cached_library_preset.cache_delete(
preset_id=preset_id, user_id=user_id
)
for page in range(1, 5):
library_cache.get_cached_library_presets.cache_delete(
user_id=user_id, page=page, page_size=10
)
library_cache.get_cached_library_presets.cache_delete(
user_id=user_id, page=page, page_size=20
)
_clear_presets_list_cache(user_id)
except Exception as e:
logger.exception("Preset update failed for user %s: %s", user_id, e)
raise HTTPException(
@@ -400,13 +394,7 @@ async def delete_preset(
library_cache.get_cached_library_preset.cache_delete(
preset_id=preset_id, user_id=user_id
)
for page in range(1, 5):
library_cache.get_cached_library_presets.cache_delete(
user_id=user_id, page=page, page_size=10
)
library_cache.get_cached_library_presets.cache_delete(
user_id=user_id, page=page, page_size=20
)
_clear_presets_list_cache(user_id)
except Exception as e:
logger.exception(
"Error deleting preset %s for user %s: %s", preset_id, user_id, e

View File

@@ -30,6 +30,15 @@ logger = logging.getLogger(__name__)
router = fastapi.APIRouter()
def _clear_store_agents_cache(user_id: str, num_pages: int = 20):
"""
Clear the store agents cache for the given user.
"""
for page in range(1, num_pages):
_get_cached_store_agents.cache_delete(user_id, page=page, page_size=20)
##############################################
############### Profile Endpoints ############
##############################################
@@ -458,10 +467,7 @@ async def delete_submission(
# Clear submissions cache for this specific user after deletion
if result:
# Clear user's own agents cache - we don't know all page/size combinations
for page in range(1, 20):
# Clear user's submissions cache for common defaults
_get_cached_submissions.cache_delete(user_id, page=page, page_size=20)
_clear_store_agents_cache(user_id)
return result
except Exception:
@@ -564,10 +570,7 @@ async def create_submission(
recommended_schedule_cron=submission_request.recommended_schedule_cron,
)
# Clear user's own agents cache - we don't know all page/size combinations
for page in range(1, 20):
# Clear user's submissions cache for common defaults
_get_cached_submissions.cache_delete(user_id, page=page, page_size=20)
_clear_store_agents_cache(user_id)
return result
except Exception:
@@ -618,10 +621,7 @@ async def edit_submission(
recommended_schedule_cron=submission_request.recommended_schedule_cron,
)
# Clear user's own agents cache - we don't know all page/size combinations
for page in range(1, 20):
# Clear user's submissions cache for common defaults
_get_cached_submissions.cache_delete(user_id, page=page, page_size=20)
_clear_store_agents_cache(user_id)
return result