rs-task-queue
In-process thread-based task queue for Rust with priority scheduling and concurrency control. Zero external dependencies — uses only std threading primitives.
Installation
Add to your Cargo.toml:
[]
= "0.1"
Usage
use ;
// Create a queue with 4 worker threads
let queue = new;
// Submit a task (Normal priority by default)
let handle = queue.submit;
// Block until the task completes
let result = handle.join.unwrap;
assert_eq!;
// Submit with explicit priority
let handle = queue.submit_with_priority;
assert_eq!;
// Check completion without blocking
let handle = queue.submit;
// ... do other work ...
if handle.is_done
// Graceful shutdown: finishes running tasks, drops pending ones
queue.shutdown;
API
| Item | Description |
|---|---|
TaskQueue::new(concurrency) |
Create a queue with N worker threads |
queue.submit(task) |
Submit a task at Normal priority; returns TaskHandle<T> |
queue.submit_with_priority(priority, task) |
Submit a task at the given priority; returns TaskHandle<T> |
queue.shutdown() |
Signal workers to stop, wait for running tasks, drop pending |
handle.join() |
Block until the task completes; returns Result<T, TaskError> |
handle.is_done() |
Check if the task has completed without blocking |
Priority::High |
Highest execution priority |
Priority::Normal |
Default execution priority |
Priority::Low |
Lowest execution priority |
TaskError::Panicked |
Task panicked during execution |
TaskError::Cancelled |
Task was dropped during shutdown before it ran |
License
MIT