2014-11-05 9 views
3

저지에서 비동기 서블릿 처리를 위해 web.xml에서 async-supported 태그가 필요한 상황을 이해하려고합니다. 비동기식 작업을하고 있다면 일반적으로 거기에 넣습니다. 그러나 설명하기 위해, 나는 내 web.xml 파일에 async-supported을 넣어하지 않는 경우,이 잘 작동이 경우 설치를 간단한 서비스로서서블릿 3.0 저지로 비동기 지원

@GET 
@Produces(MediaType.APPLICATION_JSON) 
public void myService(@Suspended AsyncResponse response) { 
    new Thread(new Runnable() { 
     @Override 
     public void run() {    
      response.resume(someResponseObject); 
     } 
    }).start(); 
} 

있습니다.

async-supported을 활성화하기 전에 수행해야 할 특정 작업이 있다고 생각되거나 비동기 적으로 작동하지 않습니까?

답변

0

web.xml 또는 이와 동등한 서블릿 주석 @WebServlet(... asyncSupported=true)async-supported 옵션은 서블릿 레벨에서 잠재적으로 장기간 실행되는 백그라운드 작업이 수행되었음을 나타 내기 위해 사용됩니다.이 작업은 해당 스레드와는 별도의 스레드에서 처리되어야 함을 나타냅니다 의뢰. 요청을 처리하는 스레드가이 배경 작업에 대해 차단되지 않으면 doGet() 또는 doPost() 메서드가 반환되고 스레드를 사용하여 다른 요청을 처리 할 수 ​​있습니다. 작업은 대기열에 저장되며 응용 프로그램 시작시 시작된 스레드 풀의 스레드에 의해 처리됩니다.

사실 Jersey 구현에서 처리하는 Jersey AsyncResponse와는 아무런 관련이 없습니다. Jersey REST 서비스는 서블릿이 아닙니다.