如果还有一个异步方法还运行,一个无状态会话会被另一个线程使用吗?
Will a stateless session be used by another thread if there is an asynchronous method still running?
据我所知,没有两个线程可以同时使用无状态会话 bean。
在我的例子中,我有两个无状态会话 bean。在第二个 bean 中,我有一个异步方法。这个方法将从第一个 bean 调用。
我的疑惑是,线程X调用第一个bean的方法成功返回后,第一个bean会不会被另一个线程使用?
下面的代码
@Stateless
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public class MyBean {
@EJB(beanName="AsyncBean")
private AsyncBean asyncBean;
public String call() {
// some code here
asyncBean.call();
return result;
}
}
@Stateless(name="asyncBean")
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public class AsyncBean {
@Asynchronous
public void call() {
// some code which takes some time
}
}
我想知道当线程X成功返回后,异步任务还在运行.
,MyBean无状态bean是否会被另一个线程使用
谢谢。
是的,EJB 容器可以在第一次调用方法后立即重用 MyBean 实例 returns。 EJB 容器不会等待异步调用完成。
据我所知,没有两个线程可以同时使用无状态会话 bean。
在我的例子中,我有两个无状态会话 bean。在第二个 bean 中,我有一个异步方法。这个方法将从第一个 bean 调用。
我的疑惑是,线程X调用第一个bean的方法成功返回后,第一个bean会不会被另一个线程使用?
下面的代码
@Stateless
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public class MyBean {
@EJB(beanName="AsyncBean")
private AsyncBean asyncBean;
public String call() {
// some code here
asyncBean.call();
return result;
}
}
@Stateless(name="asyncBean")
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public class AsyncBean {
@Asynchronous
public void call() {
// some code which takes some time
}
}
我想知道当线程X成功返回后,异步任务还在运行.
,MyBean无状态bean是否会被另一个线程使用谢谢。
是的,EJB 容器可以在第一次调用方法后立即重用 MyBean 实例 returns。 EJB 容器不会等待异步调用完成。