diff --git a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/Forwarder.java b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/Forwarder.java index 11e6b989..b0d83916 100644 --- a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/Forwarder.java +++ b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/Forwarder.java @@ -1,6 +1,7 @@ package com.imdroid.beidou_fwd.task; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.imdroid.common.util.ThreadManager; import com.imdroid.secapi.dto.*; import org.springframework.beans.factory.annotation.Autowired; @@ -16,7 +17,8 @@ public class Forwarder { String description; Integer tenantId; boolean useFwdId; - + int totalSendNum = 0; + boolean fwdFailed = false; static boolean isFwdTableInit = false; @Autowired @@ -111,8 +113,9 @@ public class Forwarder { } // 按项目打包推送 - int totalSendNum = 0; - boolean fwdFailed = false; + totalSendNum = 0; + fwdFailed = false; + List fwdRecordList = new ArrayList<>(); for (Map.Entry> entry: projects.entrySet()){ String projectId = entry.getKey(); List records = entry.getValue(); @@ -137,12 +140,18 @@ public class Forwarder { fwdRecord.setState(FwdRecord.STATE_FWD_FAILED); fwdFailed = true; } - fwdRecordsMapper.insert(fwdRecord); + fwdRecordList.add(fwdRecord); } // 更新推送信息 - if(totalSendNum>0) updateFwd(totalSendNum, true); - else if(fwdFailed) updateFwd(totalSendNum, false); + ThreadManager.getFixedThreadPool().submit(() -> { + for(FwdRecord record:fwdRecordList){ + fwdRecordsMapper.insert(record); + } + if(totalSendNum>0) updateFwd(totalSendNum, true); + else if(fwdFailed) updateFwd(totalSendNum, false); + }); + } @@ -153,8 +162,9 @@ public class Forwarder { queryWrapper.eq("state",FwdRecord.STATE_UPLOAD_DONE); List fwdRecordsList = fwdRecordsMapper.selectList(queryWrapper); // 2.检索这个这个时间段的解算结果,如果有数据则单个终端转发,标志记录为已补传 - int totalSendNum = 0; - boolean fwdFailed = false; + totalSendNum = 0; + fwdFailed = false; + List fwdRecordList = new ArrayList<>(); for(FwdRecord fwdRecord:fwdRecordsList){ // 查找device QueryWrapper deviceQueryWrapper = new QueryWrapper<>(); @@ -183,12 +193,17 @@ public class Forwarder { fwdRecord.setState(FwdRecord.STATE_FWD_FAILED); fwdFailed = true; } - fwdRecordsMapper.updateById(fwdRecord); + fwdRecordList.add(fwdRecord); } // 更新推送信息 - if(totalSendNum>0) updateFwd(totalSendNum, true); - else if(fwdFailed) updateFwd(totalSendNum, false); + ThreadManager.getFixedThreadPool().submit(() -> { + for(FwdRecord record:fwdRecordList){ + fwdRecordsMapper.updateById(record); + } + if(totalSendNum>0) updateFwd(totalSendNum, true); + else if(fwdFailed) updateFwd(totalSendNum, false); + }); } int sendBatch(GnssDevice device, String projectId, List records){ diff --git a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GXXfzForwarder.java b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GXXfzForwarder.java index 0dfb3a59..a035e29d 100644 --- a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GXXfzForwarder.java +++ b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GXXfzForwarder.java @@ -67,7 +67,6 @@ public class GXXfzForwarder extends Forwarder{ */ @Scheduled(cron = "0 0,30 * * * ?") // 每30分钟执行一次 private void forwardGnss() { - logger.info("forwardGnss"); forwardCurrentGnss(FORWARDER_NAME); }