mirror of
https://github.com/pacnpal/Pac-cogs.git
synced 2025-12-20 02:41:06 -05:00
Created a proper dependency hierarchy:
core/types.py - Contains shared interfaces and types queue/types.py - Contains queue-specific types Components now depend on interfaces rather than concrete implementations Broke cyclic dependencies: Removed direct imports between queue_processor.py and manager.py Removed circular dependencies between core and processor modules Components now communicate through well-defined interfaces Improved architecture: Clear separation of concerns Better dependency management More maintainable and testable code Proper use of dependency injection
This commit is contained in:
@@ -16,12 +16,35 @@ class QueueProcessor:
|
||||
_active_items: ClassVar[Set[int]] = set()
|
||||
_processing_lock: ClassVar[asyncio.Lock] = asyncio.Lock()
|
||||
|
||||
def __init__(self):
|
||||
def __init__(self, queue_manager):
|
||||
"""Initialize queue processor
|
||||
|
||||
Args:
|
||||
queue_manager: Queue manager instance to handle queue operations
|
||||
"""
|
||||
self.queue_manager = queue_manager
|
||||
self._metrics = ProcessingMetrics()
|
||||
|
||||
async def process_item(self, item: QueueItem) -> bool:
|
||||
async def process_urls(self, message, urls, priority: QueuePriority = QueuePriority.NORMAL) -> None:
|
||||
"""Process URLs from a message
|
||||
|
||||
Args:
|
||||
message: Discord message containing URLs
|
||||
urls: List of URLs to process
|
||||
priority: Processing priority level
|
||||
"""
|
||||
Process a single queue item
|
||||
for url_metadata in urls:
|
||||
await self.queue_manager.add_to_queue(
|
||||
url=url_metadata.url,
|
||||
message_id=message.id,
|
||||
channel_id=message.channel.id,
|
||||
guild_id=message.guild.id,
|
||||
author_id=message.author.id,
|
||||
priority=priority.value
|
||||
)
|
||||
|
||||
async def process_item(self, item: QueueItem) -> bool:
|
||||
"""Process a single queue item
|
||||
|
||||
Args:
|
||||
item: Queue item to process
|
||||
|
||||
Reference in New Issue
Block a user