2014-07-09 6 views
0

나는 다음과 같습니다 리소스 방법이 있습니다Dropwizard에서 Servlet 3.0 비동기 메소드를 사용하려면 어떻게해야합니까?

@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(); 
} 

코드를 통해 실행처럼 보이는,하지만 난 그 비동기이 경우 작동하는지 확인 할 수없는 것? 올바르게 사용하고 있습니까?

답변

0

dropwizard 사용 경험이 없지만 비동기 서블릿에서 스레드 수면과 함께 서블릿 스레드를 차단해서는 안됩니다. 서블릿의 ExecutorService를 사용하여 request.startAsync()를 호출 한 후 작업을 다른 스레드에 위임 할 수 있습니다. 비동기 컨텍스트를 작업자 스레드에 전달해야하며 완료되면 ac.complete()를 호출해야합니다.