1212"""
1313
1414from abc import ABC , abstractmethod
15+ from collections import deque
1516from dataclasses import dataclass , field
1617from datetime import datetime , timezone
1718from typing import Any , Literal
@@ -151,13 +152,13 @@ class InMemoryTaskMessageQueue(TaskMessageQueue):
151152 """
152153
153154 def __init__ (self ) -> None :
154- self ._queues : dict [str , list [QueuedMessage ]] = {}
155+ self ._queues : dict [str , deque [QueuedMessage ]] = {}
155156 self ._events : dict [str , anyio .Event ] = {}
156157
157- def _get_queue (self , task_id : str ) -> list [QueuedMessage ]:
158+ def _get_queue (self , task_id : str ) -> deque [QueuedMessage ]:
158159 """Get or create the queue for a task."""
159160 if task_id not in self ._queues :
160- self ._queues [task_id ] = []
161+ self ._queues [task_id ] = deque ()
161162 return self ._queues [task_id ]
162163
163164 async def enqueue (self , task_id : str , message : QueuedMessage ) -> None :
@@ -172,7 +173,7 @@ async def dequeue(self, task_id: str) -> QueuedMessage | None:
172173 queue = self ._get_queue (task_id )
173174 if not queue :
174175 return None
175- return queue .pop ( 0 )
176+ return queue .popleft ( )
176177
177178 async def peek (self , task_id : str ) -> QueuedMessage | None :
178179 """Return the next message without removing it."""
0 commit comments