har*_*rsh 13 java rest asynchronous http
我需要了解在REST中处理异步操作的方法以及它们的优点和缺点.我找到的一些方法:
基于资源:将操作的状态建模为状态.用户进行异步REST调用(PUT,POST等)获取Accepted
或In-Progress
响应(202
).此外,通过GET重复轮询状态URI以检查来自操作执行的状态/进度/消息.
问题:此资源在Server上应该有多长时间处于活动状态?如果客户端在操作完成之间的大间隔轮询中,我们如何返回状态?似乎坚持执行状态会起作用.但是,存档/删除的时间有多长,这种标准方法是什么?
基于回调:需要异步请求才能拥有回调URI.异步处理请求,完成后调用带有操作状态/结果的回调URI.
问题:这似乎更优雅,服务器端的开销更少.但是如何处理回调服务器间歇性关闭,没有响应等情况?实现回调URI提供重试配置的典型重试?这种方法还有其他缺点吗?
Servlet 3.0异步支持: HTTP客户端与Java Servlet建立连接的位置,该Java Servlet在显式关闭之前保持打开状态,直到关闭的客户端和服务器可以通过它进行异步通信.
问题:自从它的Servlet 3.0规范以来,我认为Jersey,即Spring REST实现,目前还没有使用这种方法.是否有任何特定的REST实现,它使用类似的方法或指针来实现它的可能性?
任何其他方法,也许是商业方法?
我认为,该方法取决于初始请求和操作结束之间的时间间隔。
归档时间: |
|
查看次数: |
20420 次 |
最近记录: |