Bladeren bron

多线程查询完善

JiahengHe 2 jaren geleden
bovenliggende
commit
b12a9e03df

+ 3 - 1
src/main/java/common/utils/util/ThreadQueryUtil.java

@@ -1,5 +1,6 @@
 package common.utils.util;
 
+import com.jfinal.aop.Aop;
 import com.jfinal.kit.Kv;
 import com.jfinal.plugin.activerecord.Db;
 import com.jfinal.plugin.activerecord.Record;
@@ -18,12 +19,13 @@ import java.util.concurrent.Future;
  */
 public class ThreadQueryUtil {
     public static List<Record> findByChainIdThread(int chainId, Kv query){
+        RedisUtil redisUtil = Aop.get(RedisUtil.class);
         //开始时间
         long start = System.currentTimeMillis();
         //返回结果
         List<Record> result = new ArrayList<>();
         //查询数据库总数量
-        int count = Db.template("address.countByChainIdUnion",query.getStr("tableName"), chainId).queryInt();
+        int count = Integer.valueOf(redisUtil.hsetValue(ConstantUtil.COUNT_NUM_KEY+query.getStr("tableName"), String.valueOf(chainId)));
 //        System.out.println("count = " + count);
         if(ConstantUtil.THREAD_QUERY_THRESHOLD >= count){
             return Db.template("address.findByChainId", query).find();

+ 4 - 3
src/main/java/modules/address/lp/LpService.java

@@ -5,6 +5,7 @@ import com.jfinal.plugin.activerecord.Db;
 import com.jfinal.plugin.activerecord.Record;
 import common.utils.http.MyPaginate;
 import common.utils.model.ConstantUtil;
+import common.utils.util.ThreadQueryUtil;
 
 import java.util.List;
 
@@ -26,9 +27,9 @@ public class LpService {
 		} else {
 			query.set("limit0", (p.getPageNumber() - 1) * p.getPageSize())
 					.set("limit1", p.getPageSize());
-//			if(p.getPageSize() > ConstantUtil.THREAD_QUERY_THRESHOLD){
-//				return ThreadQueryUtil.findByChainIdThread(chainId, query);
-//			}
+			if(p.getPageSize() > ConstantUtil.THREAD_QUERY_THRESHOLD){
+				return ThreadQueryUtil.findByChainIdThread(chainId, query);
+			}
 		}
 		return Db.template("address.findByChainId", query).find();
 	}

+ 1 - 1
src/test/http/address/V2LpTest.http

@@ -44,7 +44,7 @@ Content-Type: application/json
 {
   "chainId": 56,
   "pageNumber": 1,
-  "pageSize": 1000000,
+  "pageSize": 240000,
   "auth": {
     "auth": "9d8b7074bf189dcad17189c8f264c0cb",
     "timestamp": "123123"