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

我仔细查看了文档但无法找到是否有一种方法可以指定使用Spring 3.0使用@Async注释方法时产生的异步操作的超时。

有没有办法做到这一点? 我认为这在触发异步计算时非常重要。

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

我假设您在@Async -annotated方法上引用超时,该方法返回结果。 此类方法应返回Future的实例 ,并使用Futureget()方法指定超时。

例如

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

接着

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

在@Async源代码中没有配置选项。