AiPmTool / app /utils /http_client.py
devarshia5's picture
Upload 43 files
1def50b verified
Raw
History Blame Contribute Delete
1.04 kB
# ============================================================================
# HTTP CLIENT MANAGER
# ============================================================================
import aiohttp
from typing import Optional
from app.config import Config
from app.utils.logger import logger
class HTTPClientManager:
"""Manages aiohttp session lifecycle"""
def __init__(self):
self.session: Optional[aiohttp.ClientSession] = None
async def start(self):
timeout = aiohttp.ClientTimeout(total=Config.REQUEST_TIMEOUT)
self.session = aiohttp.ClientSession(timeout=timeout)
logger.info("HTTP client session started")
async def close(self):
if self.session:
await self.session.close()
logger.info("HTTP client session closed")
def get_session(self) -> aiohttp.ClientSession:
if not self.session:
raise RuntimeError("HTTP client not initialized")
return self.session
# Global instance
http_client = HTTPClientManager()