
[英]quarkus-resteasy-mutiny extension was not present warning when I use quarkus-resteasy-reactive-jackson
[英]Quarkus RESTEasy Reactive not working as I expected
我创建了一个 Quarkus RESTEasy Reactive 示例应用程序(从 start-coding 开始),并为 GreetingResource 添加了以下代码:
@Path("/proxy/{application}/{any: .*}")
@ApplicationScoped
public class GreetingResource {
ExecutorService myWorkerPool = Executors.newFixedThreadPool(100);
private static final Logger log = Logger.getLogger(GreetingResource.class);
@GET
public Uni<Response> hello() {
log.info("request started at " + System.currentTimeMillis());
Uni<Response> item = Uni.createFrom().item(() -> {
log.info("starting uni");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
log.info("building response");
return Response.ok(1).build();
})
//.runSubscriptionOn(Infrastructure.getDefaultWorkerPool()); // same poor performance
.runSubscriptionOn(myWorkerPool);
return item;
}
}
如果我从 Chrome 开发工具控制台运行一些并发请求,我会看到这些日志和我的请求的瀑布图:
难道我做错了什么? 因为这似乎根本没有反应。 请求应该或多或少在同一时间范围内开始,并且当工作线程完成工作时,响应应该由事件循环线程返回。 在接受另一个请求之前,事件循环不应等待其他工作线程完成。
谢谢
做很多测试,实际上从浏览器控制台访问同一个端点,这不是一个好主意,因为它会等待上一个调用完成。
另外,我尝试使用 apache 基准(10 个调用,10 个并发)运行,它按预期运行 9 个调用,第一个将始终等待完成,但我认为这与 apache 基准有关。 结束这个问题。 谢谢
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.