用途:该技能聚焦 Rust 异步编程的高级模式,帮助处理流式数据处理、并发控制、任务取消与自定义 Future 等场景。
主要能力:涵盖 Stream 处理(chunks 批量、for_each)、背压控制(Semaphore、buffer_unordered、有界 channel)、select! 多路复用、超时与协作式取消、join 与 try_join 的区别,以及手动实现 Future trait。还给出常见错误与解决方案对照表、背压策略对比、性能提示和异步代码审查清单。
使用方式:按工作流选择 Stream 或 Iterator,设计并发策略(顺序、受限并发或无限并发),再处理取消与资源清理。验证命令包括 cargo check、cargo test、cargo clippy -- -W clippy::await_holding_lock,调试可用 RUSTFLAGS="--cfg tokio_unstable" cargo run 与 cargo flamegraph。
适用场景:WebSocket、文件流、API 分页等连续数据流,需要限流防止下游过载,等待多个异步操作,带超时或用户取消的长任务,以及自定义异步原语。
限制:取消是协作式的,需要 yield 点;Drop 中不能 await;不得跨 .await 持有锁;无限并发有资源耗尽风险;CPU 密集任务应使用 spawn_blocking。资料未提供具体版本、依赖配置或收费信息。