问题是,我停止了 Dropwizard 应用程序(通过 ctrl + c)并且我在主类中插入了一个 Shutdown Hook 来在关闭之前做一些事情。但是现在应用程序的 ServerConnector 已经关闭,然后我才能做我想做的事情。
有一个轮询服务(轮询我的一个资源),我需要告诉他们,该应用程序将很快关闭以防止出现一些问题。我需要至少 15 秒才能资源下降。
一些想法如何解决这个问题?
最佳答案
您可以使用生命周期 Hook 来管理某些资源。
public class ManagedObject implements Managed {
private final Object obj;
public ManagedObject(Object obj) {
this.obj = obj;
}
@Override
public void start() throws Exception {
// Do something to start the object
}
@Override
public void stop() throws Exception {
// Do something to stop the object
}
}
然后在环境上注册
ManagedObject myManagedObject = new ManagedObject(obj);
environment.lifecycle().manage(myManagedObject);
关于java - Dropwizard关机钩,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31288721/