一尘不染

部署Java EE应用程序后执行任务

java

我有一个Java EE应用程序,该应用程序在部署后应该与外部系统启动一次同步过程。

我该如何执行此要求?


阅读 227

收藏
2020-12-03

共1个答案

一尘不染

我测试了使用@Startup@PostConstruct注释的建议解决方案。事实证明,Glassfish不会在完成所有带有注释的方法之前完成应用程序的部署@PostConstruct。因此,就我而言,部署将需要几分钟到一个小时。

但是我想出了一种实现我想要的东西的不同方法。最好的解决方案似乎是计时器回调方法,该方法在执行后取消其计时器。

@Stateless
public class SynchronisationService {
    @Schedule(hour = "*", minute = "*", persistent = false)
    protected void init(Timer timer)
    {
       doTheSync();

       timer.cancel();
    }
 }

如果重新启动应用程序服务器,则使用非持久性计时器可以重新创建计时器。

2020-12-03