Ant*_*kov 7 java jetty embedded-jetty
如何以编程方式关闭嵌入式jetty服务器?
我像这样启动jetty服务器:
Server server = new Server(8090);
...
server.start();
server.join();
Run Code Online (Sandbox Code Playgroud)
现在,我想从请求中关闭它,例如http://127.0.0.1:8090/shutdown 如何干净利落地完成它?
通常提出的解决方案是创建一个线程并从该线程调用server.stop().但我可能需要调用Thread.sleep()以确保servlet已完成处理关闭请求.
我在这里找到了一个非常干净利落的方法
神奇的代码片段是: -
server.setStopTimeout(10000L);;
try {
new Thread() {
@Override
public void run() {
try {
context.stop();
server.stop();
} catch (Exception ex) {
System.out.println("Failed to stop Jetty");
}
}
}.start();
Run Code Online (Sandbox Code Playgroud)
因为关闭是从一个单独的线程运行的,所以它不会超过自身.
小智 2
尝试server.setGracefulShutdown(stands_for_milliseconds);。
我认为它类似于thread.join(stands_for_milliseconds);.
| 归档时间: |
|
| 查看次数: |
13018 次 |
| 最近记录: |