嵌入式Jetty和优雅的关机

Odi*_*din 15 java jetty

我已经挖掘了Jetty文档试图找出如何正确配置嵌入式Jetty以优雅地关闭,但我发现它缺乏.

随后使用文档中的示例setStopAtShutdown(true).但是,没有JavaDoc或解释为什么要这样做.据我所知,默认值设置为false.

此外,该setGracefulShutdown()方法似乎改为setStopTimeout(),但这也没有记录.

所以这些是我的问题:

  1. 你为什么要在关机时设置或不设置停止?
  2. 什么时候会覆盖停止超时(默认为30秒)?
  3. 配置Jetty进行正常关闭时应该考虑哪些其他事项?

编辑:经过一些试验和错误; 发现如果你想让Jetty向任何侦听器发出关闭事件,例如Spring的ContextLoaderListener,则需要setStopAtShutdown(true).

jby*_*ler 10

正常关闭过程请求每个工作线程关闭(即完成处理当前请求,然后不接受任何新请求并退出).然后等待一点(通过超时可配置),如果有任何线程仍然存在,它会强行杀死它们.这可能发生,因为线程花费很长时间来处理请求,或者因为死锁.如果保留默认值30秒,则应用程序退出可能需要30秒多一点.减少超时值将使您更快地关闭时间,但代价是可能会杀死忙于处理合法,活动请求的线程.