java - @Asynchronous 是否有超时

标签 java jakarta-ee asynchronous timeout ejb

当我这样调用方法时:

@Asynchronous
public void cantstopme() {
  for(;;);
}

它会永远运行还是应用服务器会在特定时间后终止它?

最佳答案

每次任何人调用注解为@Asynchronous 的方法时,无论该方法实际花费多长时间,它都会立即返回。

每次调用都应该返回一个 Future 对象,该对象最初是空的,稍后当相关方法调用实际完成时,容器将填充它的值。

例如:

@Asynchronous
public Future<String> cantstopme() {

}

然后这样调用:

final Future<String> request = cantstopme();

稍后您可以使用具有特定超时的 Future.get() 方法来请求结果,即:

request.get(10, TimeUnit.SECONDS);

关于java - @Asynchronous 是否有超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17404838/

相关文章:

swift - 结合信号量来限制 .notify 的异步请求和调度组与延迟和应用程序卡住

c++ - 网络协议(protocol)设计异步单线程与同步多线程?

java - 具有 set 方法的实例字段的访问修饰符的必要性

java - 部署多个 2.1 EJB 时的 OC4J 10.1.3.4 问题

java - Struts2 应用程序在浏览时显示空白页面

jakarta-ee - 如何在单个安装程序中为 Java EE Web 应用程序创建安装程序?

javascript - 调用异步函数内部有更多的异步函数

javascript - 编辑Wordpress模板

java - 将 int 数组分成 3 部分,最大化 2 个较小部分的大小

java - 在 JSP 或 JVM 中设置区域设置无法正确格式化数字