gpt4 book ai didi

java - 如何获得有关 EJB 部署的通知(设置计时器)?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:19:15 25 4
gpt4 key购买 nike

我正在部署一个 EJB,它应该设置一个计时器并由它每 24 小时触发一次。但是我应该在哪里设置定时器呢? @PostConstruct 无济于事——这是一个 session bean,因此在创建实际实例时将调用构造后方法(这永远不会发生,因为此 bean 的唯一目的是跟踪计时器) .

有没有其他方法可以获取有关 bean 部署(不是实例化)的通知,以便在那里设置计时器?

谢谢

最佳答案

EJB 3.1 引入了 Singleton bean .它将在部署 EJB 时创建。

@Singleton
@Startup
public class TimerSessionBean {

@Resource
TimerService timerService;

@PostConstruct
public void startTimer() {
Logger.getLogger(getClass().getName()).log(Level.INFO,
timerService.getTimers().size() + " timers running");

Logger.getLogger(getClass().getName()).log(Level.INFO, "create a timer");

timerService.createTimer(10000, 10000, "a timer");
}

@Timeout
void doSomething(Timer timer) {
System.out.println("something");
}
}

EJB 3.1 中可用于定期运行任务的另一个新特性是 Schedule annotation .

关于java - 如何获得有关 EJB 部署的通知(设置计时器)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1572002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com