From 1bb6946bf877705aa84458d6ef2f81a5608bad7a Mon Sep 17 00:00:00 2001 From: weidong Date: Tue, 30 Jan 2024 22:50:11 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E4=B8=8D=E5=90=8C=E7=AC=AC=E4=B8=89?= =?UTF-8?q?=E6=96=B9=E9=94=99=E5=BC=80=E6=97=B6=E9=97=B4=E5=8F=91=E9=80=81?= =?UTF-8?q?=EF=BC=8C=E9=81=BF=E5=85=8D=E6=95=B0=E6=8D=AE=E5=BA=93=E9=9B=86?= =?UTF-8?q?=E4=B8=AD=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../imdroid/beidou_fwd/task/Forwarder.java | 37 +++++++++++++------ .../beidou_fwd/task/GXXfzForwarder.java | 1 - 2 files changed, 26 insertions(+), 12 deletions(-) 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); }