Package io.undertow.server.handlers
Class GracefulShutdownHandler
- java.lang.Object
-
- io.undertow.server.handlers.GracefulShutdownHandler
-
- All Implemented Interfaces:
HttpHandler
public class GracefulShutdownHandler extends Object implements HttpHandler
Handler that allows for graceful server shutdown. Basically it provides a way to prevent the server from accepting new requests, and wait for existing requests to complete.The handler itself does not shut anything down.
Import: The thread safety semantics of the handler are very important. Don't touch anything unless you know what you are doing.
- Author:
- Stuart Douglas
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceGracefulShutdownHandler.ShutdownListenerA listener which can be registered with the handler to be notified when all pending requests have finished.
-
Constructor Summary
Constructors Constructor Description GracefulShutdownHandler(HttpHandler next)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddShutdownListener(GracefulShutdownHandler.ShutdownListener shutdownListener)Adds a shutdown listener that will be invoked when all requests have finished.voidawaitShutdown()Waits for the handler to shutdown.booleanawaitShutdown(long millis)Waits a set length of time for the handler to shut downvoidhandleRequest(HttpServerExchange exchange)Handle the request.voidshutdown()voidstart()
-
-
-
Constructor Detail
-
GracefulShutdownHandler
public GracefulShutdownHandler(HttpHandler next)
-
-
Method Detail
-
handleRequest
public void handleRequest(HttpServerExchange exchange) throws Exception
Description copied from interface:HttpHandlerHandle the request.- Specified by:
handleRequestin interfaceHttpHandler- Parameters:
exchange- the HTTP request/response exchange- Throws:
Exception
-
shutdown
public void shutdown()
-
start
public void start()
-
awaitShutdown
public void awaitShutdown() throws InterruptedExceptionWaits for the handler to shutdown.- Throws:
InterruptedException
-
awaitShutdown
public boolean awaitShutdown(long millis) throws InterruptedExceptionWaits a set length of time for the handler to shut down- Parameters:
millis- The length of time- Returns:
trueIf the handler successfully shut down- Throws:
InterruptedException
-
addShutdownListener
public void addShutdownListener(GracefulShutdownHandler.ShutdownListener shutdownListener)
Adds a shutdown listener that will be invoked when all requests have finished. If all requests have already been finished the listener will be invoked immediately.- Parameters:
shutdownListener- The shutdown listener
-
-