修复循环引用

2.7.1-多对一语音对讲
648540858 2024-06-06 19:59:48 +08:00
parent 2127cbeca3
commit 619a86e0ed
2 changed files with 5 additions and 8 deletions

View File

@ -24,9 +24,6 @@ public class SubscribeHolder {
@Autowired @Autowired
private UserSetting userSetting; private UserSetting userSetting;
@Autowired
private IPlatformService platformService;
private final String taskOverduePrefix = "subscribe_overdue_"; private final String taskOverduePrefix = "subscribe_overdue_";
private static ConcurrentHashMap<String, SubscribeInfo> catalogMap = new ConcurrentHashMap<>(); private static ConcurrentHashMap<String, SubscribeInfo> catalogMap = new ConcurrentHashMap<>();
@ -61,13 +58,11 @@ public class SubscribeHolder {
dynamicTask.stop(taskOverdueKey); dynamicTask.stop(taskOverdueKey);
} }
public void putMobilePositionSubscribe(String platformId, SubscribeInfo subscribeInfo) { public void putMobilePositionSubscribe(String platformId, SubscribeInfo subscribeInfo, Runnable gpsTask) {
mobilePositionMap.put(platformId, subscribeInfo); mobilePositionMap.put(platformId, subscribeInfo);
String key = VideoManagerConstants.SIP_SUBSCRIBE_PREFIX + userSetting.getServerId() + "MobilePosition_" + platformId; String key = VideoManagerConstants.SIP_SUBSCRIBE_PREFIX + userSetting.getServerId() + "MobilePosition_" + platformId;
// 添加任务处理GPS定时推送 // 添加任务处理GPS定时推送
dynamicTask.startCron(key, ()->{ dynamicTask.startCron(key, gpsTask,
platformService.sendNotifyMobilePosition(platformId);
},
subscribeInfo.getGpsInterval() * 1000); subscribeInfo.getGpsInterval() * 1000);
String taskOverdueKey = taskOverduePrefix + "MobilePosition_" + platformId; String taskOverdueKey = taskOverduePrefix + "MobilePosition_" + platformId;
if (subscribeInfo.getExpires() > 0) { if (subscribeInfo.getExpires() > 0) {

View File

@ -147,7 +147,9 @@ public class SubscribeRequestProcessor extends SIPRequestProcessorParent impleme
subscribeHolder.removeMobilePositionSubscribe(platformId); subscribeHolder.removeMobilePositionSubscribe(platformId);
}else { }else {
subscribeInfo.setResponse(response); subscribeInfo.setResponse(response);
subscribeHolder.putMobilePositionSubscribe(platformId, subscribeInfo); subscribeHolder.putMobilePositionSubscribe(platformId, subscribeInfo, ()->{
platformService.sendNotifyMobilePosition(platformId);
});
} }
} catch (SipException | InvalidArgumentException | ParseException e) { } catch (SipException | InvalidArgumentException | ParseException e) {