#tokio-task #executor #running #bounded #limit #count #concurrently

rider

为 tokio 提供的限界执行器;限制正在运行的任务数量 🚦

3 个版本

0.1.2 2024 年 3 月 13 日
0.1.1 2024 年 3 月 10 日
0.1.0 2024 年 3 月 10 日

#347并发

自定义许可

16KB

rider

License Cargo Documentation

为 tokio 提供的限界执行器;限制正在运行的任务数量

use rider::{Rider, RiderError};

#[tokio::main]
async fn main() -> Result<(), RiderError> {
    // create an executor that allows at most 10 task running concurrently
    let rider = Rider::new(10);

    for index in 0..10000 {
        rider
            .spawn(async move {
                println!("{}", index);
            })
            .await?; // Suspends until task is spawned
    }

    // Deny further tasks and join remaining tasks
    rider.shutdown().await;
}

lib.rs:

该库为 tokio 提供了限界执行器,方便以固定数量并发运行任务

参见: Rider::newRider::spawnRider::shutdown

依赖

~2–3MB
~47K SLoC