fix: cover httpx disconnect family in transient error set

This commit is contained in:
2026-07-16 05:26:52 -04:00
parent 200053fbdc
commit 1cbfa97b8d
2 changed files with 14 additions and 1 deletions
+4 -1
View File
@@ -179,7 +179,10 @@ def _is_transient_error(exc: Exception) -> bool:
返回:
True 表示可重试,False 表示不可重试。
"""
if isinstance(exc, (httpx.ConnectError, httpx.ReadTimeout, httpx.WriteTimeout)):
# 两族基类覆盖断连族:TimeoutExceptionConnectTimeout/ReadTimeout/WriteTimeout/PoolTimeout
# 与 TransportErrorConnectError/ReadError/RemoteProtocolError 等)。
# 注意 HTTPStatusError 非 TransportError 子类,401/403 致命分支不受影响。
if isinstance(exc, (httpx.TimeoutException, httpx.TransportError)):
return True
if isinstance(exc, httpx.HTTPStatusError):
return exc.response.status_code in _TRANSIENT_STATUS_CODES