瀏覽代碼

add
fix 阿里消费速率过快

lifang 1 月之前
父節點
當前提交
07c85798a3

+ 1 - 1
nb-admin/src/main/resources/application.yml

@@ -7,7 +7,7 @@ spring:
   application:
     name: nb
   profiles:
-    active: dev
+    active: prod
   jackson:
     time-zone: GMT+8
   flyway:

+ 3 - 1
nb-service-api/web-service-api/src/main/java/com/nb/web/api/feign/IHospitalLogClient.java

@@ -1,7 +1,7 @@
 package com.nb.web.api.feign;
 
 import com.nb.web.api.entity.BusHospitalLogEntity;
-
+import java.util.*;
 /**
  * @author lifang
  * @version 1.0.0
@@ -11,4 +11,6 @@ import com.nb.web.api.entity.BusHospitalLogEntity;
  */
 public interface IHospitalLogClient {
     boolean save(BusHospitalLogEntity source);
+
+    boolean batchSave(List<BusHospitalLogEntity> source);
 }

+ 0 - 1
nb-service/app-doctor/src/main/java/com/nb/app/doctor/controller/PatientMonitorController.java

@@ -319,7 +319,6 @@ public class PatientMonitorController {
         } else {
             throw new IllegalArgumentException("未知的类型: " + type);
         }
-
         return R.success(result);
     }
 

+ 0 - 1
nb-service/iot-service/src/main/java/com/nb/aliyun/service/AliConsumerAutoConfiguration.java

@@ -4,7 +4,6 @@ import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.nb.aliyun.service.consumer.AbstractAliConsumer;
 import com.nb.aliyun.service.consumer.AliIotSubscribeClient;
-import com.nb.aliyun.service.consumer.NBAndFourGConsumerGroupService;
 import com.nb.aliyun.service.pojo.AliIotConsumerPojo;
 import com.nb.aliyun.service.pojo.AliIotProperties;
 import jodd.util.ClassUtil;

+ 1 - 1
nb-service/iot-service/src/main/java/com/nb/aliyun/service/consumer/AliIotSubscribeClient.java

@@ -97,7 +97,7 @@ public class AliIotSubscribeClient {
         // 创建会话。
         // Session.CLIENT_ACKNOWLEDGE: 收到消息后,需要手动调用message.acknowledge()。
         // Session.AUTO_ACKNOWLEDGE: SDK自动ACK(推荐)。
-        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+        Session session = connection.createSession(false, Session.CLIENT_ACKNOWLEDGE);
 
         connection.start();
         // 创建Receiver连接。

+ 1 - 9
nb-service/iot-service/src/main/java/com/nb/aliyun/service/consumer/NBAndFourGConsumerGroupService.java

@@ -127,7 +127,7 @@ public class NBAndFourGConsumerGroupService extends AbstractAliConsumer {
     private final static ExecutorService executorService = new ThreadPoolExecutor(
             Runtime.getRuntime().availableProcessors(),
             Runtime.getRuntime().availableProcessors(), 60, TimeUnit.SECONDS,
-            new LinkedBlockingQueue(300),
+            new LinkedBlockingQueue(50000),
             new AliYunThreadFactory());
 
 
@@ -164,14 +164,6 @@ public class NBAndFourGConsumerGroupService extends AbstractAliConsumer {
             //1.收到消息之后一定要ACK。
             ThreadPoolExecutor threadPoolExecutor = (ThreadPoolExecutor) executorService;
             int queueSize = threadPoolExecutor.getQueue().size();
-            
-            // 实现过载保护机制:当队列中待处理的任务数量超过阈值时,将消息重新返回队列
-            if (queueSize > 50) {
-                log.warn("消息队列已满,当前待处理任务数量: {},将消息重新返回队列", queueSize);
-                // 不进行acknowledge操作,让消息重新入队
-                return;
-            }
-            
             log.info("当前消息队列中待处理的任务数量: {}", queueSize);
             executorService.submit(()-> {
                 try {

+ 6 - 0
nb-service/web-service/src/main/java/com/nb/web/service/bus/service/LocalBusHospitalLogService.java

@@ -6,6 +6,8 @@ import com.nb.common.crud.BaseService;
 import com.nb.web.api.feign.IHospitalLogClient;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * @author lifang
  * @version 1.0.0
@@ -30,4 +32,8 @@ public class LocalBusHospitalLogService extends BaseService<BusHospitalLogMapper
 
     }
 
+    @Override
+    public boolean batchSave(List<BusHospitalLogEntity> source) {
+        return this.saveBatch(source);
+    }
 }

+ 82 - 82
nb-service/web-service/src/test/java/com/nb/web/service/bus/AdverseReactionUtilTest.java

@@ -1,82 +1,82 @@
-package com.nb.web.service.bus;
-
-import com.nb.web.api.entity.BusEvaluationEntity;
-import com.nb.web.service.bus.utils.AdverseReactionUtil;
-import org.junit.jupiter.api.Test;
-
-import java.util.List;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-
-/**
- * 不良反应工具类测试
- */
-public class AdverseReactionUtilTest {
-
-    @Test
-    public void testGetAdverseReactionsWithNullInput() {
-        List<String> reactions = AdverseReactionUtil.getAdverseReactions(null);
-        assertNotNull(reactions);
-        assertEquals(0, reactions.size());
-    }
-
-    @Test
-    public void testGetAdverseReactionsWithEmptyEvaluation() {
-        BusEvaluationEntity evaluation = new BusEvaluationEntity();
-        List<String> reactions = AdverseReactionUtil.getAdverseReactions(evaluation);
-        assertNotNull(reactions);
-        assertEquals(0, reactions.size());
-    }
-
-    @Test
-    public void testGetAdverseReactionsWithSomePositiveValues() {
-        BusEvaluationEntity evaluation = new BusEvaluationEntity();
-        evaluation.setNauseaVomit(1);       // 恶心
-        evaluation.setItch(2);              // 全身瘙痒
-        evaluation.setCalm(0);              // 镇静评分为0,不应包含在结果中
-        
-        List<String> reactions = AdverseReactionUtil.getAdverseReactions(evaluation);
-        assertNotNull(reactions);
-        assertEquals(2, reactions.size());
-        assertTrue(reactions.contains("恶心"));
-        assertTrue(reactions.contains("全身瘙痒"));
-        assertFalse(reactions.contains("镇静评分: 0"));
-    }
-
-    @Test
-    public void testGetAdverseReactionsWithAllPositiveValues() {
-        BusEvaluationEntity evaluation = new BusEvaluationEntity();
-        evaluation.setNauseaVomit(1);       // 恶心
-        evaluation.setItch(2);              // 全身瘙痒
-        evaluation.setVertigo(3);           // 无法行走
-        evaluation.setSoreThroat(1);        // 轻微疼痛
-        evaluation.setUroschesis(2);        // 尿潴留
-        evaluation.setBreathDepression(3);  // 需辅助呼吸
-        evaluation.setHoarseness(1);        // 声音轻微嘶哑
-        evaluation.setCognitionObstacle(2); // 意识模糊
-        
-        List<String> reactions = AdverseReactionUtil.getAdverseReactions(evaluation);
-        assertNotNull(reactions);
-        assertEquals(8, reactions.size());
-        assertTrue(reactions.contains("恶心"));
-        assertTrue(reactions.contains("全身瘙痒"));
-        assertTrue(reactions.contains("无法行走"));
-        assertTrue(reactions.contains("轻微疼痛"));
-        assertTrue(reactions.contains("尿潴留"));
-        assertTrue(reactions.contains("需辅助呼吸"));
-        assertTrue(reactions.contains("声音轻微嘶哑"));
-        assertTrue(reactions.contains("意识模糊"));
-    }
-    
-    @Test
-    public void testGetAdverseReactionsWithZeroValues() {
-        BusEvaluationEntity evaluation = new BusEvaluationEntity();
-        evaluation.setNauseaVomit(0);       // 0分,不应包含在结果中
-        evaluation.setItch(0);              // 0分,不应包含在结果中
-        
-        List<String> reactions = AdverseReactionUtil.getAdverseReactions(evaluation);
-        assertNotNull(reactions);
-        assertEquals(0, reactions.size());
-    }
-}
+//package com.nb.web.service.bus;
+//
+//import com.nb.web.api.entity.BusEvaluationEntity;
+//import com.nb.web.service.bus.utils.AdverseReactionUtil;
+//import org.junit.jupiter.api.Test;
+//
+//import java.util.List;
+//
+//import static org.junit.jupiter.api.Assertions.*;
+//
+//
+///**
+// * 不良反应工具类测试
+// */
+//public class AdverseReactionUtilTest {
+//
+//    @Test
+//    public void testGetAdverseReactionsWithNullInput() {
+//        List<String> reactions = AdverseReactionUtil.getAdverseReactions(null);
+//        assertNotNull(reactions);
+//        assertEquals(0, reactions.size());
+//    }
+//
+//    @Test
+//    public void testGetAdverseReactionsWithEmptyEvaluation() {
+//        BusEvaluationEntity evaluation = new BusEvaluationEntity();
+//        List<String> reactions = AdverseReactionUtil.getAdverseReactions(evaluation);
+//        assertNotNull(reactions);
+//        assertEquals(0, reactions.size());
+//    }
+//
+//    @Test
+//    public void testGetAdverseReactionsWithSomePositiveValues() {
+//        BusEvaluationEntity evaluation = new BusEvaluationEntity();
+//        evaluation.setNauseaVomit(1);       // 恶心
+//        evaluation.setItch(2);              // 全身瘙痒
+//        evaluation.setCalm(0);              // 镇静评分为0,不应包含在结果中
+//
+//        List<String> reactions = AdverseReactionUtil.getAdverseReactions(evaluation);
+//        assertNotNull(reactions);
+//        assertEquals(2, reactions.size());
+//        assertTrue(reactions.contains("恶心"));
+//        assertTrue(reactions.contains("全身瘙痒"));
+//        assertFalse(reactions.contains("镇静评分: 0"));
+//    }
+//
+//    @Test
+//    public void testGetAdverseReactionsWithAllPositiveValues() {
+//        BusEvaluationEntity evaluation = new BusEvaluationEntity();
+//        evaluation.setNauseaVomit(1);       // 恶心
+//        evaluation.setItch(2);              // 全身瘙痒
+//        evaluation.setVertigo(3);           // 无法行走
+//        evaluation.setSoreThroat(1);        // 轻微疼痛
+//        evaluation.setUroschesis(2);        // 尿潴留
+//        evaluation.setBreathDepression(3);  // 需辅助呼吸
+//        evaluation.setHoarseness(1);        // 声音轻微嘶哑
+//        evaluation.setCognitionObstacle(2); // 意识模糊
+//
+//        List<String> reactions = AdverseReactionUtil.getAdverseReactions(evaluation);
+//        assertNotNull(reactions);
+//        assertEquals(8, reactions.size());
+//        assertTrue(reactions.contains("恶心"));
+//        assertTrue(reactions.contains("全身瘙痒"));
+//        assertTrue(reactions.contains("无法行走"));
+//        assertTrue(reactions.contains("轻微疼痛"));
+//        assertTrue(reactions.contains("尿潴留"));
+//        assertTrue(reactions.contains("需辅助呼吸"));
+//        assertTrue(reactions.contains("声音轻微嘶哑"));
+//        assertTrue(reactions.contains("意识模糊"));
+//    }
+//
+//    @Test
+//    public void testGetAdverseReactionsWithZeroValues() {
+//        BusEvaluationEntity evaluation = new BusEvaluationEntity();
+//        evaluation.setNauseaVomit(0);       // 0分,不应包含在结果中
+//        evaluation.setItch(0);              // 0分,不应包含在结果中
+//
+//        List<String> reactions = AdverseReactionUtil.getAdverseReactions(evaluation);
+//        assertNotNull(reactions);
+//        assertEquals(0, reactions.size());
+//    }
+//}