Spaces:
Sleeping
Sleeping
| import os | |
| import motor.motor_asyncio | |
| import redis.asyncio as redis | |
| from redis.exceptions import RedisError | |
| from dotenv import load_dotenv | |
| import logging | |
| # Configure logging | |
| logging.basicConfig( | |
| level=logging.INFO, | |
| format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", | |
| ) | |
| logger = logging.getLogger(__name__) | |
| # Load environment variables from .env file | |
| load_dotenv() | |
| # Load MongoDB configuration | |
| MONGO_URI = os.getenv('MONGO_URI') | |
| DB_NAME = os.getenv('DB_NAME') | |
| CACHE_URI=os.getenv('CACHE_URI') | |
| CACHE_K = os.getenv('CACHE_K') | |
| if not MONGO_URI or not DB_NAME: | |
| raise ValueError("MongoDB URI or Database Name is not set in the environment variables.") | |
| if not CACHE_URI or not CACHE_K: | |
| raise ValueError("Redis URI or Database Name is not set in the environment variables.") | |
| # Parse Redis host and port | |
| CACHE_HOST, CACHE_PORT = CACHE_URI.split(":") | |
| CACHE_PORT = int(CACHE_PORT) | |
| # Initialize MongoDB client | |
| try: | |
| client = motor.motor_asyncio.AsyncIOMotorClient(MONGO_URI) | |
| db = client[DB_NAME] | |
| logger.info(f"Connected to MongoDB database: {DB_NAME}") | |
| except Exception as e: | |
| logger.error(f"Failed to connect to MongoDB: {e}") | |
| raise | |
| # Initialize Redis client | |
| try: | |
| redis_client = redis.Redis( | |
| host=CACHE_HOST, | |
| port=CACHE_PORT, | |
| username="default", | |
| password=CACHE_K, | |
| decode_responses=True | |
| ) | |
| logger.info("Connected to Redis.") | |
| except Exception as e: | |
| logger.error(f"Failed to connect to Redis: {e}") | |
| raise | |