SuperAPI AI 工具集

async-python-patterns

编程与开发

查看项目

更新于 10-16 01:37

技能介绍

用途:该技能面向需要编写高性能非阻塞 Python 程序的场景,提供 asyncio 与并发编程模式的专家指导。适用构建异步 Web API(FastAPI、aiohttp、Sanic)、并发 I/O(数据库、文件、网络)、并发爬虫、实时应用(WebSocket 服务、聊天系统)、同时处理多个独立任务、优化 I/O 密集工作负载,以及实现异步后台任务与任务队列。\n\n主要能力:涵盖基础 async/await 与 asyncio.run() 入口;用 asyncio.gather() 并发执行多个独立操作;用 asyncio.create_task() 创建后台任务并支持 task.cancel() 取消;通过 return_exceptions=True 处理部分失败;用 asyncio.wait_for() 设置超时;异步上下文管理器管理数据库连接、HTTP 会话、文件 I/O 与锁;异步迭代器与生成器实现惰性流式处理;基于 Queue 的生产者-消费者流水线;用 Semaphore 做速率限制与资源控制;用 Lock 等同步原语保护共享状态。\n\n性能建议包括:使用连接池(如 aiohttp TCPConnector 限制连接数)、避免阻塞事件循环(CPU 密集任务用 loop.run_in_executor(),同步文件用 aiofiles,同步 HTTP 用 aiohttp/httpx)、分批处理控制内存。\n\n常见陷阱:忘记 await、在协程中用 time.sleep() 阻塞事件循环、未处理 CancelledError、在同步函数中使用 await。测试可用 pytest-asyncio,通过 @pytest.mark.asyncio 标记异步测试。\n\n限制:资料未提供具体版本兼容范围、安装步骤、收费与价格信息,暂未提供。