Spring MVC和@Async

pus*_*pop 3 model-view-controller spring asynchronous

我有一个长期运行的Service方法(做业务逻辑),我希望客户端在向Controller提交请求后立即返回.我希望客户端定期轮询以查看Service方法是否已完成执行.阅读完这两个链接之后: link1 link2 我确信这@Async是适合我情况的正确方法.我的问题是,Service方法或Controller方法应该有哪些@Async注释.该Controller方法究竟将如何引用Future对象,以便它可以调用它get()isDone()方法.

sou*_*ica 11

将@Async放在调用"真实"服务方法的服务方法上.这样你有两种方法可以调用它,异步和非异步.

让控制器方法存储由Session中的服务返回的Future然后返回.然后当客户端轮询控制器时(在不同的URL /方法上),控制器可以将Future从会话中取出并在其上调用isDone().