diff --git a/powerjob-remote/powerjob-remote-framework/src/main/java/tech/powerjob/remote/framework/BenchmarkActor.java b/powerjob-remote/powerjob-remote-framework/src/main/java/tech/powerjob/remote/framework/BenchmarkActor.java
index e0b54b30..861cf64a 100644
--- a/powerjob-remote/powerjob-remote-framework/src/main/java/tech/powerjob/remote/framework/BenchmarkActor.java
+++ b/powerjob-remote/powerjob-remote-framework/src/main/java/tech/powerjob/remote/framework/BenchmarkActor.java
@@ -1,5 +1,11 @@
package tech.powerjob.remote.framework;
+import lombok.Data;
+import lombok.experimental.Accessors;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.RandomStringUtils;
+import tech.powerjob.common.PowerSerializable;
+import tech.powerjob.common.utils.CommonUtils;
import tech.powerjob.remote.framework.actor.Actor;
import tech.powerjob.remote.framework.actor.Handler;
@@ -9,6 +15,7 @@ import tech.powerjob.remote.framework.actor.Handler;
* @author tjq
* @since 2023/1/1
*/
+@Slf4j
@Actor(path = "benchmark")
public class BenchmarkActor {
@@ -17,4 +24,52 @@ public class BenchmarkActor {
return k;
}
+ @Handler(path = "standard")
+ public BenchmarkResponse processStandardRequest(BenchmarkRequest request) {
+ log.info("[BenchmarkActor] receive request: {}", request);
+ BenchmarkResponse response = new BenchmarkResponse()
+ .setSuccess(true)
+ .setContent(request.getContent())
+ .setProcessThread(Thread.currentThread().getName())
+ .setServerReceiveTs(System.currentTimeMillis());
+ if (request.getResponseSize() != 0 && request.getResponseSize() > 0) {
+ response.setExtra(RandomStringUtils.random(request.getResponseSize()));
+ }
+ if (request.getBlockingMills() !=0 && request.getBlockingMills() > 0) {
+ CommonUtils.easySleep(request.getBlockingMills());
+ }
+ return response;
+ }
+
+
+ @Data
+ public static class BenchmarkRequest implements PowerSerializable {
+ /**
+ * 请求内容
+ */
+ private String content;
+ /**
+ * 期望的响应大小,可空
+ */
+ private Integer responseSize;
+ /**
+ * 阻塞时间,模拟 IO 耗时
+ */
+ private Integer blockingMills;
+ }
+
+ @Data
+ @Accessors(chain = true)
+ public static class BenchmarkResponse implements PowerSerializable {
+ private boolean success;
+ /**
+ * 原路返回原来的 content
+ */
+ private String content;
+
+ private String processThread;
+ private long serverReceiveTs;
+
+ private String extra;
+ }
}
diff --git a/powerjob-remote/powerjob-remote-impl-http/pom.xml b/powerjob-remote/powerjob-remote-impl-http/pom.xml
index 489b01a9..387b5559 100644
--- a/powerjob-remote/powerjob-remote-impl-http/pom.xml
+++ b/powerjob-remote/powerjob-remote-impl-http/pom.xml
@@ -16,6 +16,7 @@
8
UTF-8
+ 4.3.7
4.2.0
@@ -27,6 +28,21 @@
${powerjob-remote-framework.version}
+
+
+ io.vertx
+ vertx-core
+ ${vertx.version}
+
+
+
+ io.vertx
+ vertx-web
+ ${vertx.version}
+
+
+
+
\ No newline at end of file