pub struct TaskQueue { /* private fields */ }Expand description
Thread-safe task queue with priority support
Implementations§
Source§impl TaskQueue
impl TaskQueue
Sourcepub async fn enqueue(&self, task: Task, priority: TaskPriority) -> Result<()>
pub async fn enqueue(&self, task: Task, priority: TaskPriority) -> Result<()>
Add a task to the queue
Sourcepub async fn dequeue(&self) -> Option<QueuedTask>
pub async fn dequeue(&self) -> Option<QueuedTask>
Dequeue the highest priority task
Sourcepub async fn dequeue_and_assign(&self, worker_id: String) -> Option<QueuedTask>
pub async fn dequeue_and_assign(&self, worker_id: String) -> Option<QueuedTask>
Dequeue a task and assign it to a worker
Sourcepub async fn peek(&self) -> Option<QueuedTask>
pub async fn peek(&self) -> Option<QueuedTask>
Peek at the next task without removing it
Sourcepub async fn size_by_priority(&self) -> (usize, usize, usize, usize)
pub async fn size_by_priority(&self) -> (usize, usize, usize, usize)
Get the number of tasks at each priority level
Sourcepub async fn all_tasks(&self) -> Vec<QueuedTask>
pub async fn all_tasks(&self) -> Vec<QueuedTask>
Get all tasks (for inspection/debugging)
Sourcepub async fn find_by_status(&self, status: TaskStatus) -> Vec<QueuedTask>
pub async fn find_by_status(&self, status: TaskStatus) -> Vec<QueuedTask>
Find tasks by status
Sourcepub async fn remove_by_id(&self, task_id: &str) -> Option<QueuedTask>
pub async fn remove_by_id(&self, task_id: &str) -> Option<QueuedTask>
Remove a specific task by ID
Trait Implementations§
Auto Trait Implementations§
impl Freeze for TaskQueue
impl !RefUnwindSafe for TaskQueue
impl Send for TaskQueue
impl Sync for TaskQueue
impl Unpin for TaskQueue
impl UnsafeUnpin for TaskQueue
impl !UnwindSafe for TaskQueue
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more