以编程方式关闭Dropwizard服务的最佳做法是什么,例如,如果在我希望终止Dropwizard服务的任何线程中发生未捕获的异常?
供参考: StackOverflow上类似但无关的问题:
此问题Dropwizard: How to stop service programmatically涉及对您的服务进行单元测试
此问题How to shutdown dropwizard application?涉及如何在进程外关闭服务。
答案 0 :(得分:4)
您可以像<fieldset>
<ul class="nav nav-tabs">
::before
<li class>
<a href="#editor" data-toggle="tab">Content</a>
</li>
<li class="active">
<a href="#publishing" data-toggle="tab">Publishing</a>
</li>
<li class>
<a href="#language" data-toggle="tab">Language</a>
</li>
<li class>
<a href="#metadata" data-toggle="tab">Metadata</a>
</li>
::after
</ul>
和DropwizardClientRule
那样执行此操作:通过调用DropwizardAppRule
停止Jetty服务。
要获取Jetty实例,您必须注册一个生命周期回调处理程序:
org.eclipse.jetty.server.Server#stop()
答案 1 :(得分:1)
我认为那里还没有最好的做法。
System.exit(0);
这就是CTRL-C的作用。它调用关闭挂钩并导致正常关闭。