From 7149e2cffea449b62125dc047dccae31737aea54 Mon Sep 17 00:00:00 2001 From: sirouk <8901571+sirouk@users.noreply.github.com> Date: Tue, 7 Apr 2026 11:58:50 -0400 Subject: [PATCH] slug column needs a db index for direct lookups --- api/chute/router.py | 2 +- api/chute/util.py | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/api/chute/router.py b/api/chute/router.py index 2154d564..0f0b2179 100644 --- a/api/chute/router.py +++ b/api/chute/router.py @@ -2629,7 +2629,7 @@ async def update_common_attributes( await set_chute_disabled(chute.chute_id, args.disabled) # Invalidate caches immediately so other processes see the updated state - await invalidate_chute_cache(chute.chute_id, chute.name) + await invalidate_chute_cache(chute.chute_id, chute.name, chute.slug) # If disabling a private chute, terminate all instances with valid_termination=true if args.disabled and not chute.public: diff --git a/api/chute/util.py b/api/chute/util.py index 3a6b6028..076e7c31 100644 --- a/api/chute/util.py +++ b/api/chute/util.py @@ -664,6 +664,7 @@ async def _get_one(name_or_id: str, nonce: int = None): or_( Chute.name == name_or_id, Chute.chute_id == name_or_id, + Chute.slug == name_or_id, ) ) .order_by((Chute.user_id == chute_user).desc()) @@ -699,19 +700,23 @@ async def get_one(name_or_id: str, nonce: int = None): return await _get_one(name_or_id, nonce=nonce) -async def invalidate_chute_cache(chute_id: str, chute_name: str = None): +async def invalidate_chute_cache(chute_id: str, chute_name: str = None, chute_slug: str = None): """ - Invalidate all caches for a chute (both by ID and by name). + Invalidate all caches for a chute (by ID, name, and slug). """ # Clear Redis cache await settings.redis_client.delete(f"_chute:{chute_id}") if chute_name: await settings.redis_client.delete(f"_chute:{chute_name}") + if chute_slug: + await settings.redis_client.delete(f"_chute:{chute_slug}") # Clear in-memory alru_cache _get_one.cache_invalidate(chute_id) if chute_name: _get_one.cache_invalidate(chute_name) + if chute_slug: + _get_one.cache_invalidate(chute_slug) @alru_cache(maxsize=5000, ttl=300)