异常捕获修正

This commit is contained in:
shikong 2024-01-07 16:21:14 +08:00
parent e8f5bfd1b0
commit 405e29c15b
2 changed files with 8 additions and 15 deletions

View File

@ -7,16 +7,13 @@ import cn.skcks.docking.gb28181.core.sip.message.subscribe.GenericSubscribe;
import cn.skcks.docking.gb28181.core.sip.message.subscribe.SipSubscribe;
import cn.skcks.docking.gb28181.core.sip.service.SipService;
import cn.skcks.docking.gb28181.orm.mybatis.dynamic.model.DockingDevice;
import cn.skcks.docking.gb28181.orm.mybatis.dynamic.model.DockingDeviceChannel;
import cn.skcks.docking.gb28181.service.device.DeviceChannelService;
import cn.skcks.docking.gb28181.service.docking.device.cache.DockingDeviceCacheService;
import cn.skcks.docking.gb28181.sip.manscdp.catalog.query.CatalogQueryDTO;
import cn.skcks.docking.gb28181.sip.manscdp.catalog.response.CatalogItemDTO;
import cn.skcks.docking.gb28181.sip.manscdp.catalog.response.CatalogResponseDTO;
import cn.skcks.docking.gb28181.sip.method.message.request.MessageRequestBuilder;
import cn.skcks.docking.gb28181.sip.utils.MANSCDPUtils;
import cn.skcks.docking.gb28181.sip.utils.SipUtil;
import gov.nist.javax.sip.message.SIPRequest;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
@ -24,13 +21,10 @@ import org.springframework.stereotype.Service;
import javax.sip.SipProvider;
import javax.sip.message.Request;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Flow;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicLong;
@Slf4j
@Service

View File

@ -10,26 +10,25 @@ public class FutureDeferredResult {
public static <T> DeferredResult<JsonResponse<T>> toDeferredResultWithJson(CompletableFuture<T> future){
DeferredResult<JsonResponse<T>> result = new DeferredResult<>();
future.whenComplete((data,throwable)->{
if(throwable!= null){
result.setResult(JsonResponse.error(throwable.getMessage()));
return;
}
result.setResult(JsonResponse.success(data));
});
future.exceptionally(e -> {
result.setResult(JsonResponse.error(e.getMessage()));
return null;
});
return result;
}
public static <T> DeferredResult<JsonResponse<T>> toDeferredResultWithJsonAndTimeout(CompletableFuture<T> future, long time, TimeUnit timeUnit){
DeferredResult<JsonResponse<T>> result = new DeferredResult<>(timeUnit.toMillis(time));
result.onTimeout(()-> result.setResult(JsonResponse.error("请求超时")));
future.whenComplete((data,throwable)->{
if(throwable!= null){
result.setResult(JsonResponse.error(throwable.getMessage()));
return;
}
result.setResult(JsonResponse.success(data));
});
future.exceptionally(e -> {
result.setResult(JsonResponse.error(e.getMessage()));
return null;
});
return result;
}