为使用Spring 3.0的方法使用@Async时提供超时值

时间:2010-09-24 07:57:47

标签: java spring asynchronous

我查看了文档,但是在使用Spring 3.0使用@Async注释方法时,无法找到是否有指定异步操作超时的方法。

有办法吗?我认为这在触发异步计算时非常重要。

2 个答案:

答案 0 :(得分:15)

@Async注释不提供超时,因为超时应该由函数的调用者决定,而不是由函数本身决定。

我假设您指的是@Async - 带注释的方法的超时,该方法返回结果。 Such methods should return an instance of Futureget()上的Future方法用于指定超时。

e.g。

@Async
public Future<String> doSomething() {
   return new AsyncResult<String>("test");
}

然后

Future<String> futureResult = obj.doSomething();  // spring makes this an async call
String result = futureResult.get(1, TimeUnit.SECOND);

答案 1 :(得分:-1)

@Async source code中没有配置选项。