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
  • Constructor Details

    • GracefulShutdownHandler

      public GracefulShutdownHandler(HttpHandler next)
  • Method Details

    • handleRequest

      public void handleRequest(HttpServerExchange exchange) throws Exception
      Description copied from interface: HttpHandler
      Handle the request.
      Specified by:
      handleRequest in interface HttpHandler
      Parameters:
      exchange - the HTTP request/response exchange
      Throws:
      Exception
    • shutdown

      public void shutdown()
    • start

      public void start()
    • awaitShutdown

      public void awaitShutdown() throws InterruptedException
      Waits for the handler to shutdown.
      Throws:
      InterruptedException
    • awaitShutdown

      public boolean awaitShutdown(long millis) throws InterruptedException
      Waits a set length of time for the handler to shut down
      Parameters:
      millis - The length of time
      Returns:
      true If 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