feat:计算响应部分增加线程池设计,加强并发能力

This commit is contained in:
lateautumn4lin 2020-09-14 19:04:03 +08:00
parent e7ccd1b4d4
commit 2dbc6072a7
4 changed files with 52 additions and 5 deletions

View File

@ -1,6 +1,8 @@
remote_server=192.144.152.23
package_name=com.lateautumn4lin.headwolf
//快手项目
group_pdd.name=com.xunmeng.pinduoduo
group_pdd.home=com.xunmeng.pinduoduo.ui.activity.HomeActivity
//pdd项目
group_kuaishou.name=com.smile.gifmaker
group_kuaishou.home=com.yxcorp.gifshow.HomeActivity

View File

@ -0,0 +1,25 @@
package com.lateautumn4lin.headwolf.commons;
/*
* Response
*
* @author lateautumn4lin
* @github https://github.com/lateautumn4lin
* @date 2020/9/14 18:16
*/
import com.virjar.sekiro.api.SekiroResponse;
public class Response implements Runnable {
private String data;
private SekiroResponse sekiroResponse;
public Response(String Data, SekiroResponse sekiroResponse) {
this.data = Data;
this.sekiroResponse = sekiroResponse;
}
@Override
public void run() {
sekiroResponse.send(data);
}
}

View File

@ -18,6 +18,10 @@ import java.io.File;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import dalvik.system.PathClassLoader;
import de.robv.android.xposed.IXposedHookLoadPackage;
@ -34,6 +38,8 @@ public class BaseEntry implements IXposedHookLoadPackage {
private static List<String> hookPackages = new ArrayList<String>();
private final String handleHookClass = RealEntry.class.getName();
private final String handleHookMethod = "handleLoadPackage";
private static BlockingQueue blockingQueue = new ArrayBlockingQueue<>(30);
public static ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(50, 50, 1, TimeUnit.MINUTES, blockingQueue);
static {
hookPackages.add("com.smile.gifmaker");

View File

@ -8,6 +8,8 @@ package com.lateautumn4lin.headwolf.handlers;
*/
import com.google.gson.Gson;
import com.lateautumn4lin.headwolf.commons.Response;
import com.lateautumn4lin.headwolf.entry.BaseEntry;
import com.virjar.sekiro.api.SekiroRequest;
import com.virjar.sekiro.api.SekiroRequestHandler;
import com.virjar.sekiro.api.SekiroResponse;
@ -18,7 +20,7 @@ import java.util.Map;
/**
* The type Kuaishou handler.
*/
public class KuaishouHandler implements SekiroRequestHandler {
public class KuaishouHandler extends BaseHandler implements SekiroRequestHandler {
/**
* Gets belong.
*
@ -39,11 +41,23 @@ public class KuaishouHandler implements SekiroRequestHandler {
@Override
public void handleRequest(SekiroRequest sekiroRequest, SekiroResponse sekiroResponse) {
Gson gson = new Gson();
Map<String, String> object = new HashMap<String, String>();
public void handleRequest(SekiroRequest sekiroRequest, final SekiroResponse sekiroResponse) {
final Gson gson = new Gson();
final Map<String, String> object = new HashMap<String, String>();
String name = sekiroRequest.getString("name");
object.put("name", name);
sekiroResponse.send(gson.toJson(object));
// 测试三种请求返回方式 测试方案 1000/s 总请求 50*1000
// P1:阻塞返回
// sekiroResponse.send(gson.toJson(object));
// P2:新建线程返回 70/s响应1分钟开外延迟过高
// new Thread(new Runnable() {
// @Override
// public void run() {
// sekiroResponse.send(gson.toJson(object));
// }
// });
// P3:线程池返回 1000/s响应1s左右
Runnable task = new Response(gson.toJson(object), sekiroResponse);
BaseEntry.threadPoolExecutor.submit(task);
}
}