使用TimerService.createTimer()
在EJB3中创建计时器,然后通过@Timeout
注释注释的任何回调方法运行计时器,即:
@Resource
private TimerService timerService;
public void createHampster() {
Hampster hampster = new Hampster("Fluffy III");
timerService.createTimer(3000, 3000, hampster);
}
(...)
@Timeout
public void feedHampster(Timer timer) {
Hampster hampster = (Hampster) timer.getInfo()
//(...)
}
所以,我的问题是,这两个代码块是否需要在同一个bean中?定时器是继承到创建它们的bean还是全局的?我自己的测试建议但是前者,我在文档中没有找到任何明确的内容。
答案 0 :(得分:2)
它们与创建它们的bean绑定在一起。 EJB 3规范第18.2节说:
企业bean的bean类 必须使用计时器服务 提供超时回调方法。
和
当计时器指定的时间 创造过去了,容器 调用超时回调方法 豆子。