为使用Spring 3.0的方法使用@Async时提供超时值
我仔细查看了文档但无法找到是否有一种方法可以指定使用Spring 3.0使用@Async注释方法时产生的异步操作的超时。
有没有办法做到这一点? 我认为这在触发异步计算时非常重要。
@Async
注释不提供超时,因为超时应由函数的调用者决定,而不是由函数本身决定。
我假设您在@Async
-annotated方法上引用超时,该方法返回结果。 此类方法应返回Future
的实例 ,并使用Future
的get()
方法指定超时。
例如
@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源代码中没有配置选项。