public UndertowEmbeddedServletContainerFactory
embeddedServletContainerFactory() {
++ +UndertowEmbeddedServletContainerFactory factory = new
UndertowEmbeddedServletContainerFactory();
++ +factory.addDeploymentInfoCustomizers((builder) ->
builder.addInitialHandlerChainWrapper(GracefulUndertowShutdown()));
++ +return factory;
}
private class GracefulUndertowShutdown implements
ApplicationListener<ContextClosedEvent>, HandlerWrapper {
++ +// HandlerWrapper:可用于包装处理程序链的接口,添加附加的处理程序。
++ +private volatile GracefulShutdownHandler handler;
++ +@Override
++ +public HttpHandler wrap(HttpHandler handler) {
++ +++ +this.handler = new GracefulShutdownHandler(handler);
++ +++ +return this.handler;
++ +}
+ + //+处理应用程序事件
++ +@Override
++ +public void onApplicationEvent(ContextClosedEvent event) {
++ +++ +try {
++ +++ +++ +this.handler.shutdown();
++ +++ +++ +this.handler.awaitShutdown(30000);
++ +++ +}catch (InterruptedException ex) {
++ +++ +++ +Thread.currentThread().interrupt();
++ +++ +}
++++ +}
++ +}
}
2.OpenResty 简介
OpenResty
®
是一个基于 Nginx与 Lua 的高性能 Web 平台,其内部集成了大量精
良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、
扩展性极高的动态 Web 应用、Web 服务和动态网关。