feat:计算响应部分增加线程池设计,加强并发能力
This commit is contained in:
parent
e7ccd1b4d4
commit
2dbc6072a7
@ -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
|
@ -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);
|
||||
}
|
||||
}
|
@ -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");
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user