SuperAPI AI 工具集

python-async-patterns

编程与开发

查看项目

更新于 10-16 05:01

技能介绍

用途:提供 Python 异步并发编程的 5 种模式及其完整实现,适合处理 API 调用、数据库查询、外部服务调用等并发场景。

主要能力与模式:

  1. Gather 超时与错误处理:用 asyncio.timeout(Python 3.11+)配合 asyncio.gather(..., return_exceptions=True),避免单个任务失败取消其他任务。适合多个相互独立的操作。
  2. 基于信号量的工作池:用 asyncio.Semaphore(max_workers) 限制并发数,适合有速率限制的 API 或数据库连接池场景。
  3. 指数退避重试:按 backoff_factor 计算延迟并重试,适合不稳定的外部服务。
  4. 任务取消与清理:用 asyncio.TaskGroup(Python 3.11+)在首个异常时自动取消相关任务,适合一个失败应取消其余的任务组。
  5. AsyncWorkerPool:生产级实现,含固定数量 worker、asyncio.Queue 任务队列、可配置重试与指数退避、优雅关闭(排空队列后取消 worker)、TaskResult 记录成功/失败、尝试次数与耗时。用法示例为先创建 AsyncWorkerPool(num_workers=5, max_retries=3),再 await pool.submit(task),最后 await pool.shutdown(timeout=5.0)。

限制:部分模式依赖 Python 3.11+ 的 asyncio.timeout 与 asyncio.TaskGroup;资料未提供安装方式、许可证、收费与平台信息。