繁体   English   中英

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

[英]Providing a timeout value when using @Async for a method using Spring 3.0

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

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

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

我假设您在@Async -annotated方法上引用超时,该方法返回结果。 这样的方法应该返回的一个实例Future ,而get()对方法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);

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM