From 1de344674afd6bb35b51b165bbad76dbe6299b7e Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期四, 28 三月 2024 18:08:33 +0800 Subject: [PATCH] 使用冒号分隔redis的key --- src/main/java/com/genersoft/iot/vmp/conf/CloudRecordTimer.java | 34 ++++++++++++++++++++++------------ 1 files changed, 22 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/conf/CloudRecordTimer.java b/src/main/java/com/genersoft/iot/vmp/conf/CloudRecordTimer.java index abd5dfb..f98977f 100644 --- a/src/main/java/com/genersoft/iot/vmp/conf/CloudRecordTimer.java +++ b/src/main/java/com/genersoft/iot/vmp/conf/CloudRecordTimer.java @@ -3,8 +3,10 @@ import com.alibaba.fastjson2.JSONObject; import com.genersoft.iot.vmp.media.zlm.AssistRESTfulUtils; +import com.genersoft.iot.vmp.media.zlm.ZLMRESTfulUtils; import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; import com.genersoft.iot.vmp.service.IMediaServerService; +import com.genersoft.iot.vmp.service.bean.CloudRecordItem; import com.genersoft.iot.vmp.storager.dao.CloudRecordServiceMapper; import com.genersoft.iot.vmp.vmanager.cloudRecord.CloudRecordController; import org.slf4j.Logger; @@ -13,6 +15,7 @@ import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; +import java.io.File; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; @@ -33,15 +36,17 @@ private CloudRecordServiceMapper cloudRecordServiceMapper; @Autowired - private AssistRESTfulUtils assistRESTfulUtils; + private ZLMRESTfulUtils zlmresTfulUtils; /** * 瀹氭椂鏌ヨ寰呭垹闄ょ殑褰曞儚鏂囦欢 */ +// @Scheduled(fixedRate = 10000) //姣忎簲绉掓墽琛屼竴娆★紝鏂逛究娴嬭瘯 @Scheduled(cron = "0 0 0 * * ?") //姣忓ぉ鐨�0鐐规墽琛� public void execute(){ + logger.info("[褰曞儚鏂囦欢瀹氭椂娓呯悊] 寮�濮嬫竻鐞嗚繃鏈熷綍鍍忔枃浠�"); // 鑾峰彇閰嶇疆浜哸ssist鐨勬祦濯掍綋鑺傜偣 - List<MediaServerItem> mediaServerItemList = mediaServerService.getAllWithAssistPort(); + List<MediaServerItem> mediaServerItemList = mediaServerService.getAllOnline(); if (mediaServerItemList.isEmpty()) { return; } @@ -49,23 +54,28 @@ for (MediaServerItem mediaServerItem : mediaServerItemList) { Calendar lastCalendar = Calendar.getInstance(); - if (mediaServerItem.getRecordDate() > 0) { + if (mediaServerItem.getRecordDay() > 0) { lastCalendar.setTime(new Date()); - // 鑾峰彇淇濆瓨鐨勬渶鍚庢埅鑷虫棩鏈燂紝鍥犱负姣忎釜鑺傜偣閮芥湁涓�涓棩鏈燂紝涔熷氨鏄敮鎸佹瘡涓妭鐐硅缃笉鍚岀殑淇濆瓨鏃ユ湡锛� - lastCalendar.add(Calendar.DAY_OF_MONTH, -mediaServerItem.getRecordDate()); + // 鑾峰彇淇濆瓨鐨勬渶鍚庢埅鑷虫棩[鏈燂紝鍥犱负姣忎釜鑺傜偣閮芥湁涓�涓棩鏈燂紝涔熷氨鏄敮鎸佹瘡涓妭鐐硅缃笉鍚岀殑淇濆瓨鏃ユ湡锛� + lastCalendar.add(Calendar.DAY_OF_MONTH, -mediaServerItem.getRecordDay()); Long lastDate = lastCalendar.getTimeInMillis(); + // 鑾峰彇鍒版埅鑷虫棩鏈熶箣鍓嶇殑褰曞儚鏂囦欢鍒楄〃锛屾枃浠跺垪琛ㄦ弧瓒虫湭琚敹钘忓拰淇濇寔鐨勩�傝繖涓や釜瀛楁鐩墠鍏辫兘涓�鑷达紝 // 涓烘垜鑷繁涓氬姟绯荤粺鐩稿叧鐨勪唬鐮侊紝澶у浣跨敤鐨勬椂鍊欑洿鎺ヤ娇鐢ㄦ敹钘忥紙collect锛夎繖涓�涓被鍨嬪嵆鍙� - List<String> filePathList = cloudRecordServiceMapper.queryRecordFilePathListForDelete(lastDate, mediaServerItem.getId()); - if (filePathList.isEmpty()) { + List<CloudRecordItem> cloudRecordItemList = cloudRecordServiceMapper.queryRecordListForDelete(lastDate, mediaServerItem.getId()); + if (cloudRecordItemList.isEmpty()) { continue; } - // 鍏堣皟鐢╝ssist鍒犻櫎纾佺洏鏂囦欢锛屽垹闄ゆ垚鍔熷悗鍐嶅垹闄ゆ暟鎹簱璁板綍 - JSONObject jsonObject = assistRESTfulUtils.deleteFiles(mediaServerItem, filePathList); - if (jsonObject != null && jsonObject.getInteger("code") == 0 && jsonObject.getInteger("data") > 0) { - result += jsonObject.getInteger("data"); - cloudRecordServiceMapper.deleteByFileList(filePathList, mediaServerItem.getId()); + // TODO 鍚庣画鍙互鍒犻櫎绌轰簡鐨勮繃鏈熸棩鏈熸枃浠跺す + for (CloudRecordItem cloudRecordItem : cloudRecordItemList) { + String date = new File(cloudRecordItem.getFilePath()).getParentFile().getName(); + JSONObject jsonObject = zlmresTfulUtils.deleteRecordDirectory(mediaServerItem, cloudRecordItem.getApp(), + cloudRecordItem.getStream(), date, cloudRecordItem.getFileName()); + if (jsonObject.getInteger("code") != 0) { + logger.warn("[褰曞儚鏂囦欢瀹氭椂娓呯悊] 鍒犻櫎纾佺洏鏂囦欢閿欒锛� {}:{}", cloudRecordItem.getFilePath(), jsonObject); + } } + result += cloudRecordServiceMapper.deleteList(cloudRecordItemList); } } logger.info("[褰曞儚鏂囦欢瀹氭椂娓呯悊] 鍏辨竻鐞唟}涓繃鏈熷綍鍍忔枃浠�", result); -- Gitblit v1.8.0