我使用 JBoss 7.1.1.Final。在这里,我有一个启动单例。在启动时我初始化一些东西,在关闭时我终止/清理我的东西。但现在我发现,终止我可以在 1 秒内为所欲为!一秒钟后,应用程序就消失了,有时 1 秒钟不足以进行真正的清理。
代码:
@Singleton
@Startup
public class ShutdownTest {
@PostConstruct
public void initialize() {
LOG.info("Initialization");
}
@PreDestroy
public void terminate() {
for(;;) {
LOG.info("loop in terminate...");
Tools.sleepQuietly(100); // just sleeps for 100 milliseconds
}
}
}
此类确实在启动时报告了初始化,但在终止时我得到了 10 倍的输出,在此之后,JBoss 死了。
即使某些 PreDestroy 方法仍在运行,我该如何配置这个时间,直到 JBoss 杀死自己?
目前我从 Eclipse 启动和停止 JBoss(轮询器设置为 Web 端口)。