From 43788108c059637353fa6b7f59e1ef84d783feb5 Mon Sep 17 00:00:00 2001 From: gilesb Date: Fri, 9 Jan 2026 11:25:38 +0000 Subject: [PATCH] Fix Celery workers to use Redis for shared cache index The get_cache_manager() singleton wasn't initializing with Redis, so workers couldn't see files uploaded via the API server. Co-Authored-By: Claude Opus 4.5 --- cache_manager.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/cache_manager.py b/cache_manager.py index 0d9718c..2940199 100644 --- a/cache_manager.py +++ b/cache_manager.py @@ -757,9 +757,24 @@ def get_cache_manager() -> L1CacheManager: """Get the singleton cache manager instance.""" global _manager if _manager is None: + import redis + from urllib.parse import urlparse + cache_dir = Path(os.environ.get("CACHE_DIR", str(Path.home() / ".artdag" / "cache"))) l2_server = os.environ.get("L2_SERVER", "http://localhost:8200") - _manager = L1CacheManager(cache_dir=cache_dir, l2_server=l2_server) + + # Initialize Redis client for shared cache index + redis_url = os.environ.get('REDIS_URL', 'redis://localhost:6379/5') + parsed = urlparse(redis_url) + redis_client = redis.Redis( + host=parsed.hostname or 'localhost', + port=parsed.port or 6379, + db=int(parsed.path.lstrip('/') or 0), + socket_timeout=5, + socket_connect_timeout=5 + ) + + _manager = L1CacheManager(cache_dir=cache_dir, l2_server=l2_server, redis_client=redis_client) return _manager