我有一个如下所示的资源方法:
@Path("hard")
@GET
public Response sayHello2(@Context HttpServletRequest request)
throws InterruptedException {
AsyncContext ac = request.startAsync();
Thread.sleep(1000);
ac.complete();
return Response.ok("hello world hard").build();
}
看起来代码运行,但我似乎无法验证async在这种情况下是否正常工作?我是否正确使用了这个?
答案 0 :(得分:0)
我没有dropwizard体验但是在异步servlet中你不应该通过线程休眠来阻止servlet线程。在调用request.startAsync()之后,可以使用servlet中的ExecutorService将工作委托给另一个线程。您应该将异步上下文传递给工作线程,并在完成后调用ac.complete()。