# Concurrent Queue Task Processing Library This Rust library provides a robust solution for handling queue tasks in high concurrency scenarios. It ensures tasks are processed in order, enhancing service stability. Additionally, it allows configurable parallel task processing to optimize performance. ## Features - **Queue-Based Task Management**: Tasks are enqueued and processed sequentially. - **High Concurrency Handling**: Designed for high-load environments to maintain stability. - **Configurable Parallel Processing**: Set the number of tasks processed concurrently via parameters. ## Installation Add this to your `Cargo.toml`: ```toml [dependencies] queued-task = "0.1.0" ``` # Usage ```rust use std::sync::Arc; use std::time::Duration; use queued_task::QueuedTaskBuilder; #[tokio::test] async fn test() { // 10 queue_len, 2 process rate let t = Arc::new(QueuedTaskBuilder::new(10, 2).handle(handle).build()); async fn handle(wait_time: Duration, c: usize) -> usize { tokio::time::sleep(Duration::from_secs(1)).await; println!("{} {}", c, wait_time.as_millis()); c } let mut ts = vec![]; for i in 0..20 { let tt = t.clone(); ts.push(tokio::spawn(async move { // push task let state = tt.push(i).await.unwrap(); // waiting for task result let result = state.wait_result().await; dbg!(result); })); } for x in ts { let _ = x.await; } } ```