feat:计算响应部分增加线程池设计,加强并发能力
This commit is contained in:
parent
e7ccd1b4d4
commit
2dbc6072a7
@ -1,6 +1,8 @@
|
|||||||
remote_server=192.144.152.23
|
remote_server=192.144.152.23
|
||||||
package_name=com.lateautumn4lin.headwolf
|
package_name=com.lateautumn4lin.headwolf
|
||||||
|
//快手项目
|
||||||
group_pdd.name=com.xunmeng.pinduoduo
|
group_pdd.name=com.xunmeng.pinduoduo
|
||||||
group_pdd.home=com.xunmeng.pinduoduo.ui.activity.HomeActivity
|
group_pdd.home=com.xunmeng.pinduoduo.ui.activity.HomeActivity
|
||||||
|
//pdd项目
|
||||||
group_kuaishou.name=com.smile.gifmaker
|
group_kuaishou.name=com.smile.gifmaker
|
||||||
group_kuaishou.home=com.yxcorp.gifshow.HomeActivity
|
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.lang.reflect.Method;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
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 dalvik.system.PathClassLoader;
|
||||||
import de.robv.android.xposed.IXposedHookLoadPackage;
|
import de.robv.android.xposed.IXposedHookLoadPackage;
|
||||||
@ -34,6 +38,8 @@ public class BaseEntry implements IXposedHookLoadPackage {
|
|||||||
private static List<String> hookPackages = new ArrayList<String>();
|
private static List<String> hookPackages = new ArrayList<String>();
|
||||||
private final String handleHookClass = RealEntry.class.getName();
|
private final String handleHookClass = RealEntry.class.getName();
|
||||||
private final String handleHookMethod = "handleLoadPackage";
|
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 {
|
static {
|
||||||
hookPackages.add("com.smile.gifmaker");
|
hookPackages.add("com.smile.gifmaker");
|
||||||
|
@ -8,6 +8,8 @@ package com.lateautumn4lin.headwolf.handlers;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
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.SekiroRequest;
|
||||||
import com.virjar.sekiro.api.SekiroRequestHandler;
|
import com.virjar.sekiro.api.SekiroRequestHandler;
|
||||||
import com.virjar.sekiro.api.SekiroResponse;
|
import com.virjar.sekiro.api.SekiroResponse;
|
||||||
@ -18,7 +20,7 @@ import java.util.Map;
|
|||||||
/**
|
/**
|
||||||
* The type Kuaishou handler.
|
* The type Kuaishou handler.
|
||||||
*/
|
*/
|
||||||
public class KuaishouHandler implements SekiroRequestHandler {
|
public class KuaishouHandler extends BaseHandler implements SekiroRequestHandler {
|
||||||
/**
|
/**
|
||||||
* Gets belong.
|
* Gets belong.
|
||||||
*
|
*
|
||||||
@ -39,11 +41,23 @@ public class KuaishouHandler implements SekiroRequestHandler {
|
|||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleRequest(SekiroRequest sekiroRequest, SekiroResponse sekiroResponse) {
|
public void handleRequest(SekiroRequest sekiroRequest, final SekiroResponse sekiroResponse) {
|
||||||
Gson gson = new Gson();
|
final Gson gson = new Gson();
|
||||||
Map<String, String> object = new HashMap<String, String>();
|
final Map<String, String> object = new HashMap<String, String>();
|
||||||
String name = sekiroRequest.getString("name");
|
String name = sekiroRequest.getString("name");
|
||||||
object.put("name", 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