我测试了使用
@Startup和
@PostConstruct注释的建议解决方案。事实证明,Glassfish不会在完成所有带有注释的方法之前完成应用程序的部署
@PostConstruct。因此,就我而言,部署将需要几分钟到一个小时。
但是我想出了一种实现我想要的东西的不同方法。最好的解决方案似乎是计时器回调方法,该方法在执行后取消其计时器。
@Statelesspublic class SynchronisationService { @Schedule(hour = "*", minute = "*", persistent = false) protected void init(Timer timer) { doTheSync(); timer.cancel(); } }如果重新启动应用程序服务器,则使用非持久性计时器可以重新创建计时器。



