From dfb87c768538e280cf5e17d1d5ee5bbed1e1888d Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期五, 25 十一月 2022 10:58:26 +0800 Subject: [PATCH] 合并主线 --- src/main/java/com/genersoft/iot/vmp/gb28181/session/RecordDataCatch.java | 23 ++++++++--------------- 1 files changed, 8 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/session/RecordDataCatch.java b/src/main/java/com/genersoft/iot/vmp/gb28181/session/RecordDataCatch.java index 0d166c1..1d2b34b 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/session/RecordDataCatch.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/session/RecordDataCatch.java @@ -3,16 +3,15 @@ import com.genersoft.iot.vmp.gb28181.bean.*; import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder; import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage; -import com.genersoft.iot.vmp.storager.IVideoManagerStorage; -import com.genersoft.iot.vmp.utils.DateUtil; import com.genersoft.iot.vmp.vmanager.bean.WVPResult; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; -import java.text.SimpleDateFormat; +import java.time.Instant; import java.util.*; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.TimeUnit; /** * @author lin @@ -35,7 +34,7 @@ recordInfo.setSn(sn.trim()); recordInfo.setSumNum(sumNum); recordInfo.setRecordList(Collections.synchronizedList(new ArrayList<>())); - recordInfo.setLastTime(new Date(System.currentTimeMillis())); + recordInfo.setLastTime(Instant.now()); recordInfo.getRecordList().addAll(recordItems); data.put(key, recordInfo); }else { @@ -44,7 +43,7 @@ return 0; } recordInfo.getRecordList().addAll(recordItems); - recordInfo.setLastTime(new Date(System.currentTimeMillis())); + recordInfo.setLastTime(Instant.now()); } return recordInfo.getRecordList().size(); } @@ -52,27 +51,21 @@ @Scheduled(fixedRate = 5 * 1000) //姣�5绉掓墽琛屼竴娆�, 鍙戠幇鏁版嵁5绉掓湭鏇存柊鍒欑Щ闄ゆ暟鎹苟璁や负鏁版嵁鎺ユ敹瓒呮椂 private void timerTask(){ Set<String> keys = data.keySet(); - Calendar calendarBefore5S = Calendar.getInstance(); - calendarBefore5S.setTime(new Date()); - calendarBefore5S.set(Calendar.SECOND, calendarBefore5S.get(Calendar.SECOND) - 5); - + // 鑾峰彇浜旂鍓嶇殑鏃跺埢 + Instant instantBefore5S = Instant.now().minusMillis(TimeUnit.SECONDS.toMillis(5)); for (String key : keys) { RecordInfo recordInfo = data.get(key); // 瓒呰繃浜旂鏀朵笉鍒版秷鎭换鍔¤秴鏃讹紝 鍙洿鏂拌繖涓�閮ㄥ垎鏁版嵁 - if ( recordInfo.getLastTime().before(calendarBefore5S.getTime())) { + if ( recordInfo.getLastTime().isBefore(instantBefore5S)) { // 澶勭悊褰曞儚鏁版嵁锛� 杩斿洖缁欏墠绔� String msgKey = DeferredResultHolder.CALLBACK_CMD_RECORDINFO + recordInfo.getDeviceId() + recordInfo.getSn(); - WVPResult<RecordInfo> wvpResult = new WVPResult<>(); - wvpResult.setCode(0); - wvpResult.setMsg("success"); // 瀵规暟鎹繘琛屾帓搴� Collections.sort(recordInfo.getRecordList()); - wvpResult.setData(recordInfo); RequestMessage msg = new RequestMessage(); msg.setKey(msgKey); - msg.setData(wvpResult); + msg.setData(recordInfo); deferredResultHolder.invokeAllResult(msg); data.remove(key); } -- Gitblit v1.8.0