From d6262acf6ab2a5083e62ea98299b378f61cd5421 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期四, 20 四月 2023 16:42:44 +0800
Subject: [PATCH] 更新readme
---
src/main/java/com/genersoft/iot/vmp/gb28181/session/RecordDataCatch.java | 30 ++++++++++++++----------------
1 files changed, 14 insertions(+), 16 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..3f24dbe 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
@@ -1,18 +1,18 @@
package com.genersoft.iot.vmp.gb28181.session;
import com.genersoft.iot.vmp.gb28181.bean.*;
+import com.genersoft.iot.vmp.gb28181.event.record.RecordEndEventListener;
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
@@ -24,18 +24,21 @@
@Autowired
private DeferredResultHolder deferredResultHolder;
+ @Autowired
+ private RecordEndEventListener recordEndEventListener;
- public int put(String deviceId, String sn, int sumNum, List<RecordItem> recordItems) {
+ public int put(String deviceId,String channelId, String sn, int sumNum, List<RecordItem> recordItems) {
String key = deviceId + sn;
RecordInfo recordInfo = data.get(key);
if (recordInfo == null) {
recordInfo = new RecordInfo();
recordInfo.setDeviceId(deviceId);
+ recordInfo.setChannelId(channelId);
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 +47,7 @@
return 0;
}
recordInfo.getRecordList().addAll(recordItems);
- recordInfo.setLastTime(new Date(System.currentTimeMillis()));
+ recordInfo.setLastTime(Instant.now());
}
return recordInfo.getRecordList().size();
}
@@ -52,28 +55,23 @@
@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);
+ recordEndEventListener.delEndEventHandler(recordInfo.getDeviceId(),recordInfo.getChannelId());
data.remove(key);
}
}
--
Gitblit v1.8.0