【发布时间】:2016-12-25 17:16:43
【问题描述】:
我正在学习使用 spring mvc/boot 休息。我了解基本的休息电话,但我无法理解长时间运行/非阻塞的休息电话。
我知道,对于长时间运行的休息调用,我们会启动一个单独的线程,服务器会向客户端返回一个 DeferredResult 对象,但是当处理线程完成时如何通知客户端?
有人可以为我提供一个如何在客户端处理此问题的示例吗?
还有非java客户端如何处理这样的请求?
【问题讨论】:
-
由于您的问题似乎很笼统,因此我给出了一个不受 java 或 spring 约束的理论答案。据我所知,在 REST 中没有服务器端通知之类的东西。相反,有一个客户端轮询活动。我举一个典型的例子:你想创建一个资源,但是服务器不能在线满足你的请求。服务器将返回
202 Accepted状态消息,客户端知道,从现在开始,它可以轮询该资源。 -
只是为了补充前面的评论:在 REST 中没有“现成的”服务器通知机制,但您可以实现 RESTful 发布-订阅。但是,当然,这是另一回事。
标签: java spring rest nonblocking