我有一个无状态 EJB,它的方法应该延迟调用不同的方法。例如:
EJB 1
public void start()
{
waitFor3Seconds();
doSomething1();
waitFor3Seconds();
doSomething2();
waitFor3Seconds();
doSomething3();
}
如何实现 waitFor3Seconds() ?我不想使用 Thread.sleep() 因为它会阻塞。
使用 Java EE 提供的 Timer Service:
http://docs.oracle.com/javaee/6/tutorial/doc/bnboy.html#bnbpa
您需要查看标题为“创建程序计时器”的部分
如何实现 waitFor3Seconds() ?我不想使用 Thread.sleep() 因为它会阻塞。
无论您将实现何种等待方法,您的 EJB 都将被阻塞 — 按照设计,它会在您的方法返回后返回到空闲 EJB 池中。这就是其他人建议采用异步处理的原因。