调整 playbackStart 重试策略

This commit is contained in:
shikong 2023-09-18 14:05:42 +08:00
parent b0cdba12f7
commit b98acc9cd4
3 changed files with 19 additions and 1 deletions

View File

@ -198,7 +198,9 @@ public class WvpService {
@SneakyThrows @SneakyThrows
private void downloadFromPlayback(HttpServletResponse response, String token, String deviceId, String channelId, String startTime, String endTime){ private void downloadFromPlayback(HttpServletResponse response, String token, String deviceId, String channelId, String startTime, String endTime){
Retryer<JsonResponse<StreamContent>> playBackRetryer = RetryUtil.getDefaultRetryer("通过回放获取实时视频流下载"); Retryer<JsonResponse<StreamContent>> playBackRetryer = RetryUtil
.<StreamContent>getDefaultRetryerBuilder("通过回放获取实时视频流下载", 100, TimeUnit.MILLISECONDS, 5)
.build();
JsonResponse<StreamContent> videoStreamResponse = playBackRetryer.call(() -> wvpProxyClient.playbackStart(token, deviceId, channelId, new GeneralTimeReq(startTime, endTime))); JsonResponse<StreamContent> videoStreamResponse = playBackRetryer.call(() -> wvpProxyClient.playbackStart(token, deviceId, channelId, new GeneralTimeReq(startTime, endTime)));
StreamContent streamContent = videoStreamResponse.getData(); StreamContent streamContent = videoStreamResponse.getData();
String stream = streamContent.getStream(); String stream = streamContent.getStream();

View File

@ -40,6 +40,19 @@ public class RetryUtil {
return result -> result == null || (result.getCode() != 0 && result.getCode() != 200); return result -> result == null || (result.getCode() != 0 && result.getCode() != 200);
} }
public static <T> RetryerBuilder<JsonResponse<T>> getDefaultRetryerBuilder(String name, int waitTime, TimeUnit waitUnit, int retryTime) {
return RetryerBuilder.<JsonResponse<T>>newBuilder()
// 异常就重试
.retryIfException()
.retryIfRuntimeException()
// 重试间隔
.withWaitStrategy(WaitStrategies.fixedWait(waitTime, waitUnit))
// 重试次数
.withStopStrategy(StopStrategies.stopAfterAttempt(retryTime))
.retryIfResult(defaultRetryIf())
.withRetryListener(defaultRetryListener(name));
}
public static <T> RetryerBuilder<JsonResponse<T>> getDefaultRetryerBuilder(String name) { public static <T> RetryerBuilder<JsonResponse<T>> getDefaultRetryerBuilder(String name) {
return RetryerBuilder.<JsonResponse<T>>newBuilder() return RetryerBuilder.<JsonResponse<T>>newBuilder()
// 异常就重试 // 异常就重试

View File

@ -33,6 +33,9 @@ spring:
connection-timeout: 0 connection-timeout: 0
ok-http: ok-http:
read-timeout: 0 read-timeout: 0
hc5:
connection-request-timeout: 60
connection-request-timeout-unit: seconds
media: media:
ip: 192.168.1.241 ip: 192.168.1.241