浏览代码

Merge remote-tracking branch 'origin/master'

yumeng 11 月之前
父节点
当前提交
51ddbee191

+ 10 - 0
ruixuan-admin/src/main/resources/application-dev.yml

@@ -140,6 +140,7 @@ spring:
   # mongodb 配置
   data:
     mongodb:
+#      uri: mongodb://root:hcst2024..@192.168.0.99:27017/admin?authSource=admin&readPreference=primaryPreferred&maxpoolsize=100&minpoolsize=10&maxidletimems=0&maxlifetimems=0&maxconnecting=5&waitqueuetimeoutms=120000
       host: 192.168.0.99
       port: 27017
       #root:只在admin数据库中可用。超级账号,超级权限
@@ -147,6 +148,15 @@ spring:
       password: hcst2024..
       database: admin
       authentication-database: admin
+#      maxpoolsize: 100 # 池中允许的最大连接数。一旦池耗尽,任何需要连接的操作都将在阻塞队列中等待直到获取到连接, 默认: 100
+#      minpoolsize: 10 # 池中允许的最小连接数。这些连接在空闲时将保留在池中,并且池将确保它至少包含这个最小数量 默认: 0
+#      maxidletimems: 0 # 池连接的最大空闲时间。零值表示对空闲时间没有限制。超过其空闲时间的池连接将被关闭并在必要时由新连接替换。单位为毫秒
+#      maxlifetimems: 0 # 池连接可以存活的最长时间。零值表示寿命没有限制。超过其生命周期的池连接将被关闭并在必要时由新连接替换。单位为毫秒
+#      maxconnecting: 5 # 同一时刻允许的最大并行连接数。默认值是: 2。
+#      waitqueuetimeoutms: 120000 # 阻塞队列中请求的最大等待时间,超过这个时间的请求将被拒绝。单位为毫秒,默认为: 120s
+
+      #从连接池获取连接的最大等待时间(毫秒)
+      max-wait-time: 22000
 
 # token配置
 token:

+ 9 - 2
ruixuan-common/src/main/java/com/ruixuan/common/utils/mongodb/MongoDBDemo.java

@@ -1,5 +1,7 @@
 package com.ruixuan.common.utils.mongodb;
 
+import com.mongodb.client.MongoClient;
+import com.mongodb.client.internal.MongoClientImpl;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.mongodb.core.MongoTemplate;
@@ -19,6 +21,8 @@ public class MongoDBDemo {
 
     @Autowired
     private MongoTemplate mongoTemplate;
+    @Autowired
+    MongoClient mongoClient;
 
     /**
      * 新增:
@@ -38,7 +42,7 @@ public class MongoDBDemo {
 
     public void saveAll() {
         List<PeopleDemo> list = new ArrayList();
-        PeopleDemo people = new PeopleDemo("zhangsan", "zhangsan2", "张三", "13312345678");
+        PeopleDemo people = new PeopleDemo("zhangsan2", "zhangsan2", "张三2", "13312345678");
         PeopleDemo people2 = new PeopleDemo("lisi", "lisi", "李四", "15512345678");
         list.add(people);
         list.add(people2);
@@ -52,7 +56,7 @@ public class MongoDBDemo {
     public void find() {
         new PeopleDemo();
         Criteria criteria = new Criteria();
-        criteria = Criteria.where("userId").is("zhangsan");
+        criteria = Criteria.where("userId").is("zhangsan2");
         Query query = new Query(criteria);
 
         List<PeopleDemo> list = mongoTemplate.find(query, PeopleDemo.class);
@@ -60,6 +64,9 @@ public class MongoDBDemo {
         System.out.println("条件筛选结果:" + list);
         System.out.println("----All结果:" + all);
         log.info("find ok");
+
+        System.out.println("MongoDB线程池Pool信息:" + ((MongoClientImpl) mongoClient).getSettings().getConnectionPoolSettings());
+
     }
 
 }

+ 25 - 7
ruixuan-live/src/main/java/com/ruixuan/isc/controller/SupplyChainController.java

@@ -2019,8 +2019,7 @@ public class SupplyChainController extends BaseController {
         os.flush();
         os.close();
     }
-
-
+    static ExecutorService addListCService = Executors.newFixedThreadPool(5);
     /**
      * 接口链接:
      * https://open.kwaixiaodian.com/zone/new/docs/api?name=open.distribution.investment.activity.open.close&version=1
@@ -2028,11 +2027,30 @@ public class SupplyChainController extends BaseController {
     @GetMapping("/addList")
     @ApiOperation(value = "分销团长订单列表(游标方式)")
     public void addList(String beginDate, String endDate) {
-        try {
-            supplyChainService.addList(beginDate, endDate, "");
-        } catch (InterruptedException e) {
-            e.printStackTrace();
-        }
+        List<String> allDatesOfTwoTimes = DateUtils.getAllDatesOfTwoTimes(beginDate, endDate);
+        allDatesOfTwoTimes.forEach(date -> addListCService.submit(() -> {
+            try {
+                supplyChainService.addList(date, date, "");
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+        }));
+    }
+
+    @GetMapping("/addListC")
+    @ApiOperation(value = "多日期本地调试---分销团长订单列表")
+    public void addListC(String beginDate, String endDate) {
+        List<String> allDatesOfTwoTimes = DateUtils.getAllDatesOfTwoTimes(beginDate, endDate);
+        allDatesOfTwoTimes.forEach(date -> addListCService.submit(() -> {
+            try {
+                long currentTimeMillis = System.currentTimeMillis();
+                System.out.println(date + "开始执行ing...");
+                supplyChainService.addList(date, date, "");
+                System.out.println(date + "用时:" + (System.currentTimeMillis() - currentTimeMillis) / 60000 + "分");
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+        }));
     }
 
     static ExecutorService fxNowService = Executors.newFixedThreadPool(3);