queued-task 0.1.4

concurrent queue task processing
Documentation
# 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;
        }
    }
```