""" Queue service Provides task queue management features """ import structlog from typing import Dict, Any from datetime import datetime logger = structlog.get_logger() class QueueService: """Queue service class""" def __init__(self): self.active_workers = 0 self.queue_size = 0 self.total_processed = 0 self.total_failed = 0 self._stats = { "active_workers": 0, "queue_size": 0, "total_processed": 0, "total_failed": 0 } async def get_stats(self) -> Dict[str, Any]: """Get queue statistics""" return self._stats.copy() async def increment_processed(self): """Increase processed task count""" self.total_processed += 1 self._stats["total_processed"] = self.total_processed async def increment_failed(self): """Increase failed task count""" self.total_failed += 1 self._stats["total_failed"] = self.total_failed async def set_active_workers(self, count: int): """Set number of active workers""" self.active_workers = count self._stats["active_workers"] = count async def set_queue_size(self, size: int): """Set queue size""" self.queue_size = size self._stats["queue_size"] = size async def add_to_queue(self): """Add task to queue""" self.queue_size += 1 self._stats["queue_size"] = self.queue_size async def remove_from_queue(self): """Remove task from queue""" if self.queue_size > 0: self.queue_size -= 1 self._stats["queue_size"] = self.queue_size # Global service instance _queue_service = None def get_queue_service() -> QueueService: """Get queue service instance""" global _queue_service if _queue_service is None: _queue_service = QueueService() return _queue_service