2

我正在使用 JAX-RS 开发一堆 Restful API(1 个 POST 和 1 个 GET)。post 方法在表中插入一些行,而 GET 方法除了从 DB 中获取更多数据之外,还获取插入的数据。

我面临的问题是 GET 方法需要在 POST 方法之后立即执行。这就是业务需求,GET 方法在数据库中查询一些数据。但是 POST 方法还没有完成,而是调用了 GET 方法。

有没有办法暂停 GET 方法,直到 POST 方法完成,尽管 GET 方法是从客户端调用的。

任何人都可以分享代码片段来完成这项任务。谢谢

4

1 回答 1

2

如果您知道必须暂停 HTTP GET 请求处理的条件,那么异步 HTTP 请求处理在这里会有所帮助。

由于 POST 和 GET 请求由两个不同的线程处理,因此您将确保处理 GET 请求的线程被告知 POST 请求处理完成。这可以通过一些信号量来实现。

异步 HTTP 请求处理虽然在 Servlet 3.0 中可用,但在 JAX-RS 1.1 中以标准化方式不可用。然而,它是 JAX-RS 2.0 (Java EE 7) 的一部分,可通过@Suspended注解获得。如果你想使用 JAX-RS 1.1(又名 Java EE 6),你可能需要依赖提供者的能力;例如, RESTEasy通过Java EE 6 应用程序的注释支持异步 HTTP 请求处理。@Suspend

于 2013-10-08T06:00:57.467 回答