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

我浏览了文档,但找不到使用Spring 3.0使用@Async带注释的方法时,是否有办法为生成的异步操作指定超时。

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

回答:

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

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

例如

@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);

以上是 在使用Spring 3.0的方法中使用@Async时提供超时值 的全部内容, 来源链接: utcz.com/qa/425403.html

回到顶部