feat(client): 慢请求监控(>500ms 记日志+上报);拆除列表 provider 的 _cache 失败兜底
- SlowRequestInterceptor:单次 API 调用超 500ms 即 debugPrint long-request 日志并经 ErrorReporter 上报(error_type=slow_api,按 method+归一路径 5 分钟 节流)。服务端 GIN 日志只见自身处理耗时,网络往返段只有客户端可观测。 - 拆除 10 个列表 provider 的 _cache 失败兜底:实测线上接口客户端视角典型 50-120ms、最坏约 270ms(列表类全部 <500ms),失败静默端旧数据弊大于利 (曾放大跨账号残留问题),改为明确进入错误态由用户重试。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -9,6 +9,7 @@ import '../errors/error_reporter.dart';
|
||||
import '../../providers/connectivity_provider.dart';
|
||||
import '../../providers/license_provider.dart';
|
||||
import 'retry_interceptor.dart';
|
||||
import 'slow_request_interceptor.dart';
|
||||
|
||||
/// Public Dio instance for unauthenticated calls (login / refresh)
|
||||
final _publicDio = _buildPublicDio();
|
||||
@@ -19,6 +20,7 @@ Dio _buildPublicDio() {
|
||||
connectTimeout: AppConstants.publicConnectTimeout,
|
||||
receiveTimeout: AppConstants.publicReceiveTimeout,
|
||||
));
|
||||
dio.interceptors.add(SlowRequestInterceptor());
|
||||
dio.interceptors.add(RetryInterceptor(dio));
|
||||
return dio;
|
||||
}
|
||||
@@ -110,6 +112,9 @@ class ApiClient {
|
||||
},
|
||||
));
|
||||
|
||||
// 慢请求监控(最外层,量到的是用户感知耗时)
|
||||
_dio.interceptors.add(SlowRequestInterceptor());
|
||||
|
||||
// 网络层错误自动重试(须在错误处理拦截器之前,先重试再走 401/上报逻辑)
|
||||
_dio.interceptors.add(RetryInterceptor(_dio));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user