可运行示例
带受控并发与重试的异步抓取器
使用 Semaphore 信号量控制并发、指数退避重试瞬时失败并隔离单项错误,实现韧性异步任务批处理。
问题
无界的 asyncio.gather 并发会导致套接字耗尽、429 限流与级联失败。生产级批处理抓取器必须限制并发、重试瞬时失败(429、503、超时)、对永久错误快速失败,并保证单条失败不会拖垮整批。
任务契约
- 用 asyncio.Semaphore 限制并发上限,而不是无界 gather。
- 对瞬时失败——429、503、超时——使用有界的指数退避重试。
- 对 400、404 等永久错误快速失败,不做重试。
- 隔离单项失败,返回结构化的成功与错误记录。
本地验证
在 FlyPython 仓库根目录下,先复现 starter 的失败,再验证审校过的 solution:
python examples/async-fetcher/verify.py starter --expect-failurepython examples/async-fetcher/verify.py solution交给 coding agent
继续
这个示例在学习路线中的位置。
审校日期 2026-09-02 · 仓库内容版本 1。可以继续阅读对应学习路径、浏览仓库目录,或阅读 MCP 迁移指南了解规范背景。