dev*_*hts 23 spring asynchronous callable
我想知道使用Callable在Spring中使用@Async和Servlet 3异步请求实现的一般用例.
据我了解,@ Async用于使任何方法(特别是任何服务方法)异步执行.
@Async
void doSomething(String s) {
// this will be executed asynchronously
}
Run Code Online (Sandbox Code Playgroud)
以及任何返回Callable的控制器
@RequestMapping("/view")
public Callable<String> callableWithView(final Model model) {
return new Callable<String>() {
@Override
public String call() throws Exception {
Thread.sleep(2000);
model.addAttribute("foo", "bar");
model.addAttribute("fruit", "apple");
return "views/html";
}
};
}
Run Code Online (Sandbox Code Playgroud)
我很困惑,什么时候使用什么.使用异步servlet/controller和spring @Async会产生什么影响?
sha*_*ltc 19
这篇文章解释了你在寻找什么
摘抄:
在某些情况下,您可以在后台作业完成处理时立即返回客户端.例如,发送电子邮件,启动数据库作业,以及其他代表 可以通过Spring 支持或通过将事件发布到Spring Integration通道然后返回客户端可用于查询的确认ID 来处理的"即发即弃"场景
@Async
结果.
可调用的返回类型使控制器方法异步.这通常用于长轮询等情况.有关更多信息,请阅读同一作者的这篇文章.
同样可调用是Runnable的替代方法,在某种意义上,它可以返回结果并抛出已检查的异常.
假设你有一个方法
public String aMethod(){
}
Run Code Online (Sandbox Code Playgroud)
只需返回Callable接口即可使其异步.
public Callable<String> aMethod(){
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
34074 次 |
最近记录: |