DeferredResult 的用处
DeferredResult 其实是基于 Servlet 3.0 对异步请求的支持而来的,我们来看这样一个场景:
当前 controller 里面有个方法 A,其内部逻辑依赖 redis 里面的一个值,如果 redis 里面有值了,就可以获取返回,如果没值这时候没有东西可以返回,只能返回 null,而往 redis 塞入值依赖另一个后台线程。
正常的实现我们肯定可以想到轮询的方案,即浏览器不断轮询方法 A,直到有值才停止轮询,但是有时候过于频繁的轮询会给服务器产生压力。
而这时候 DeferredResult 就可以登场啦,从名字我们就可以知道:延期的结果。
我们来简单的看下使用方式: