SuperAPI AI 工具集

python-async-best-practices

编程与开发

查看项目

更新于 10-16 06:50

技能介绍

用途:为编写与审查 asyncio 代码提供规范,共 1 个类别、5 条规则,按影响程度排序。规则命中只是信号而非结论,这类问题通常能通过单请求冒烟测试,却在高负载下暴露,需结合代码真实并发情况判断。

适用时机:编写或审查 async def 代码、任务派生或流式消费;审计异步服务中的阻塞调用或无界扇出;排查挂起、孤儿任务或退出时的不可抛出警告。

影响等级:HIGH 指影响事件循环上所有任务的停滞或静默失败,发现即修;MEDIUM 指资源与清理纪律,适用于新代码和受审代码。

规则(并发与异步,前缀 async-):async-no-blocking-event-loop,禁止在 async def 中做同步 I/O、sleep 或重 CPU 操作,阻塞调用用 asyncio.to_thread;async-own-your-tasks,默认用 TaskGroup,持有引用,长生命周期任务先取消再排空;async-bound-concurrency,当扇出随输入规模增长时用 Semaphore 或队列设界;async-generator-cleanup,提前离开异步生成器时用 aclosing() 或显式 aclose();async-preserve-cancellation,取消是控制流,先清理再重新抛出,绝不当作已记录失败。

使用方式:逐条阅读规则文件,如 rules/async-no-blocking-event-loop.md、rules/async-own-your-tasks.md。每条规则含 frontmatter 中的影响等级、简要说明、错误示例、正确示例及可选的边界情况说明。完整汇编指南见 AGENTS.md。应用规则前应先打开规则文件查看其反向信号(When ... / Scope: / Keep ... 标记段落),确认何时不应套用。

相关技能:python-best-practices 覆盖通用生产 Python,其 error-specific-exceptions 规则涉及宽泛捕获卫生并指向此处;python-pytest 的 determinism-sync-not-sleep 将这些思路用于并发测试。

限制:资料未提供具体安装命令、收费方式、支持平台或效果数据。