【发布时间】:2011-05-07 09:00:09
【问题描述】:
我定义了两个超时:
超时 A - 每 30 秒
超时 B - 每 2 分钟一次
// scheduled for timeout A (every 30sec)
@Stateless
public class MyBeanA {
(...)
@Timeout
public void onTimeoutA(javax.ejb.Timer timer) {
// (...)
}
}
// scheduled for timeout B (every 2min)
@Stateless
public class MyBeanB {
(...)
@Timeout
public void onTimeoutB(javax.ejb.Timer timer) {
// (...)
}
}
很容易注意到,每 2 分钟后,两个超时都会被触发。我想确保在这种情况下,超时 A 将在超时 B 之前触发:
(30sec): timeoutA, (60sec): timeoutA, (90sec): timeoutA, (120sec): timeoutA, timeoutB
是否可以使用标准 EJB (3.0) Timer Service API? 我的应用服务器是 JBoss。
提前致谢, 彼得
【问题讨论】:
-
也许你可以让 A 控制这一切。 IE。每 30 秒运行一次 A,每 4 个事件(120 秒)让它进行处理,然后在 Bean B 上调用适当的方法。