使用Jersey的Java异步REST Web服务?

时间:2010-01-04 16:07:06

标签: java rest multithreading jersey

我需要实现一个Java REST Web服务(我们使用Jersey框架),它基本上可以

一个。在返回响应之前阻止等待某个事件(或事件的轮询) 湾提供某种aysnc行为,以便在处理请求时通知客户端。

我正在考虑返回transationID,并且有一个/ status端点,客户端应该轮询该端点以确定是否处理了请求并获得特定结果。

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

艾伦, 正确的做法是使用HTTP的202 Accepted返回代码,并在响应正文中包含一个链接,指向客户端可以轮询的页面以检查请求的状态。

在machine2machine上下文中,您需要为这些响应设计媒体类型(或微格式等),以便机器客户端可以“理解”它们。

请参阅http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.3

也许还会为此目的查看几乎标准化的新HTTP链接头。

http://tools.ietf.org/html/draft-nottingham-http-link-header-03

答案 1 :(得分:3)

您可能会觉得这很有趣:Approach for REST request with long execution time