Rust 异步编程模式
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/rust-async-patterns。
技能介绍
要解决什么问题
异步 Rust 在生产里常卡在几类坑:任务怎么拆、跨任务怎么传数据、流式 I/O 怎么背压、错误在 async 链里怎么不丢上下文。本技能围绕 Tokio 运行时 下的常见模式,把任务调度、通道、流与错误处理串成可复用的做法,而不是只罗列 API。
技能如何工作
使用时先明确目标、约束和输入,再按场景套用对应模式并做结果验证。核心覆盖:
- 任务:并发单元如何 spawn、取消与生命周期管理
- 通道:
mpsc/oneshot等在生产中的选型与背压 - 流:
Stream组合、缓冲与超时 - 错误处理:
?、自定义错误类型与跨await边界传播
更细的代码路径与对照示例见资源 resources/implementation-playbook.md;说明里会给出可执行步骤与验证方式,便于对照自己的服务或网络 I/O 场景改。
适用边界
适合「已经在用或打算用 Tokio 做异步 I/O / 网络服务」的工程问题。若任务与 Rust 异步模式无关,或需要本技能范围外的其他领域工具栈,应换用对应技能;它不负责替代 Tokio 官方文档或完整运行时调优手册。
使用场景
- 用 Tokio 搭建 HTTP/WebSocket 服务时,需要拆分后台任务并用通道在任务间传递请求结果
- 现有同步 Rust 服务要改成异步 I/O,需要梳理 `spawn`、取消与任务生命周期的写法
- 流式读取大文件或下游 API 时,要用 `Stream` 做缓冲、超时与背压,避免内存暴涨
- `async` 调用链里错误类型混乱,需要统一 `?` 传播与跨 `await` 的自定义错误封装
适合人员
- 维护 Rust 网关或微服务的后端工程师,要在生产环境稳定跑 Tokio 并发与异步 I/O
- 从多线程或阻塞 I/O 迁到 async Rust 的开发者,需要可对照的任务与通道模式而非零散 API
- 负责排查线上偶发卡死或任务泄漏的 SRE,需要按模式检查 spawn、通道关闭与流消费逻辑
- 写网络客户端或数据采集管道的工程师,要在高并发下正确处理流式响应与异步错误