Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中REST服务的异步页面等效_Java_Rest_Asynchronous_Concurrency_Jersey - Fatal编程技术网

Java中REST服务的异步页面等效

Java中REST服务的异步页面等效,java,rest,asynchronous,concurrency,jersey,Java,Rest,Asynchronous,Concurrency,Jersey,我们正在使用Jersey编写一些REST服务。我们的服务进行一些底层服务调用,这些调用的速度恰好非常慢,这导致每个请求的每个线程都要等待3-4秒。在调查过程中,我遇到了这样一种方法,它为来自线程池的每个请求分配一个线程,并在I/O操作开始时将该线程返回到线程池,在I/O操作完成时获得一个新线程来完成其余的处理 Jersey中是否存在类似的情况,在Jersey中,我们可以提供更多并发连接,而不是为每个连接保留一个线程,直到它完成。我不想发布请求,返回GUID,然后继续轮询来自客户端的请求状态,因为

我们正在使用Jersey编写一些REST服务。我们的服务进行一些底层服务调用,这些调用的速度恰好非常慢,这导致每个请求的每个线程都要等待3-4秒。在调查过程中,我遇到了这样一种方法,它为来自线程池的每个请求分配一个线程,并在I/O操作开始时将该线程返回到线程池,在I/O操作完成时获得一个新线程来完成其余的处理

Jersey中是否存在类似的情况,在Jersey中,我们可以提供更多并发连接,而不是为每个连接保留一个线程,直到它完成。我不想发布请求,返回GUID,然后继续轮询来自客户端的请求状态,因为我不控制客户端代码

谢谢, GG

敬礼

看一看,特别是将异步注释引入jersey的atmosphere jersey模块。看看其中一个,或者读一下这个。Atmosphere的球衣完全符合您的要求,无需您操纵线程或类似的操作。如果你需要更多的帮助,请到我们这里来

谢谢


--Jeanfrancois(Atmosphere Creator and Leads)

hi这确实是一个基本但很好的示例,说明了如何运行多个线程/任务来为同一请求执行多个操作,但它在服务器上运行一个线程/连接。我们进行一个底层服务调用,需要4-5秒的时间,并且父线程在该时间段内被阻塞,这减少了可以与服务器进行的并发连接的数量。我们要做的是,在进行底层服务调用时,释放可用于服务另一个请求的父线程,当我们得到响应时,恢复该线程以处理其余的请求。请查看此问题。有没有可能实施。谢谢你的时间。