用途:提供 Python 异步并发编程的 5 种模式及其完整实现,适合处理 API 调用、数据库查询、外部服务调用等并发场景。
主要能力与模式:
- Gather 超时与错误处理:用 asyncio.timeout(Python 3.11+)配合 asyncio.gather(..., return_exceptions=True),避免单个任务失败取消其他任务。适合多个相互独立的操作。
- 基于信号量的工作池:用 asyncio.Semaphore(max_workers) 限制并发数,适合有速率限制的 API 或数据库连接池场景。
- 指数退避重试:按 backoff_factor 计算延迟并重试,适合不稳定的外部服务。
- 任务取消与清理:用 asyncio.TaskGroup(Python 3.11+)在首个异常时自动取消相关任务,适合一个失败应取消其余的任务组。
- 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;资料未提供安装方式、许可证、收费与平台信息。