目前我正在使用 Jersey 1.0 并即将切换到 2.0。对于 REST 请求,可能会持续一两秒以上,我使用以下模式:
- 客户端调用 GET 或 PUT
- 服务器返回一个轮询 URL 给客户端
- 客户端轮询 URL,直到它重定向到已完成的资源
相当标准和直接。但是,我注意到 Jersey 2.0 具有 AsyncResponse 功能。但看起来这是在电线上没有任何变化的情况下完成的。换句话说,当服务器异步处理请求时,客户端仍然阻塞结果。
那么这有什么好处呢?我应该使用它而不是我当前的异步方法来调用 > 1 秒吗?或者它真的只是为了让服务器上的连接释放出来,只需要几百毫秒的调用?
我希望我的服务器尽可能具有可扩展性,但我现在使用的方法对客户端来说可能很乏味。AsyncResponse 看起来超级简单,但我不确定它如何适用于需要非常短的连接时间的 heroku 服务。