🧠 图解记忆:超时是调用方的时间预算,取消需要沿任务树传播,背压用于限制系统接受工作的速度;点击图片可查看原图。
💡 答案要点
超时是调用方的时间预算,取消需要沿任务树传播,背压用于限制系统接受工作的速度。只加 Semaphore 不等于完整背压:还需要有界队列、入队超时、拒绝/降级策略和关闭流程。
捕获 CancelledError 时应完成必要清理后继续抛出;不要把取消当普通失败重试。整体 deadline 应在下游调用之间传递,避免每一层重新获得完整超时。使用 TaskGroup 或结构化并发可以减少孤儿任务。
