Jersey的异步REST API

Che*_*han 5 rest multithreading tomcat asynchronous jersey

我们使用Jersey作为REST Web服务(部署在tomcat上).

我知道

  • Tomcat的HTTP连接器有一个线程池,用于读取HTTP请求并转发到Jersey.
  • 转发到泽西岛是同步的.

在这里读到Jersey提供AsyncService最大化的并发性.

问题:为什么Jersey的异步设计迫使开发人员将REST处理卸载到单独的线程/ runnable,而Jersey可以通过专用/私有执行器池自行完成此操作?

这是为了更好地控制开发人员还是我错过了什么?

Pau*_*tha 8

为什么Jersey的异步设计迫使开发人员将REST处理卸载到单独的线程/ runnable,而Jersey可以通过专用/私有执行器池自行完成此操作?

你不是被迫的.泽西有@ManagedAsync你可以穿上你的方法.这完全符合您的要求

ManagedAsync

指示应用注释的资源方法应在由内部Jersey执行器服务管理的单独线程上执行.

@GET
@ManagedAsync
public void longGet(@Suspended final AsyncResponse ar) {

}
Run Code Online (Sandbox Code Playgroud)

也可以看看: