"""Verify Redis and Celery integration.""" import asyncio import os import sys # Add project root to path sys.path.insert(0, os.getcwd()) from src.core.redis import get_redis_client from src.worker.app import app from src.worker.tasks import train_model_task async def verify_redis(): """Verify Redis connection.""" print("Verifying Redis connection...") try: redis = get_redis_client() client = redis.get_client() await client.set("test_key", "hello_redis") value = await client.get("test_key") print(f"Redis write/read success: {value}") await client.delete("test_key") await redis.close() return True except Exception as e: print(f"Redis verification failed: {e}") return False def verify_celery_task_queuing(): """Verify Celery task queuing.""" print("\nVerifying Celery task queuing...") try: # Submit task (won't run unless worker is active, but we check queuing) task = train_model_task.delay(force_retrain=False, bootstrap=False) print(f"Task submitted. ID: {task.id}") print(f"Task status: {task.status}") return True except Exception as e: print(f"Celery task submission failed: {e}") return False async def main(): redis_ok = await verify_redis() celery_ok = verify_celery_task_queuing() if redis_ok and celery_ok: print("\nSUCCESS: Redis and Celery integration verified.") else: print("\nFAILURE: One or more components failed verification.") if __name__ == "__main__": asyncio.run(main())