-
- All Known Implementing Classes:
Graceful.Shutdown
public interface GracefulJetty components that wish to be part of a Graceful shutdown implement this interface so that the
shutdown()method will be called to initiate a shutdown. Shutdown operations can fall into the following categories:- Preventing new load from being accepted (eg connectors stop accepting connections)
- Preventing existing load expanding (eg stopping existing connections accepting new requests)
- Waiting for existing load to complete (eg waiting for active request count to reduce to 0)
- Performing cleanup operations that may take time (eg closing an SSL connection)
The
CompletableFuturereturned by the the shutdown call will be completed to indicate the shutdown operation is completed. Some shutdown operations may be instantaneous and always return a completed future.Graceful shutdown is typically orchestrated by the doStop methods of Server or ContextHandler (for a full or partial shutdown respectively).
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static classGraceful.ShutdownA utility class to assist implementing the Graceful interface.static interfaceGraceful.ThrowingRunnable
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Modifier and Type Method Description booleanisShutdown()java.util.concurrent.CompletableFuture<java.lang.Void>shutdown()Shutdown the component.static java.util.concurrent.CompletableFuture<java.lang.Void>shutdown(Container component)Utility method to shutdown all Gracefuls within a container.static java.util.concurrent.CompletableFuture<java.lang.Void>shutdown(Graceful.ThrowingRunnable runnable)Utility method to execute aGraceful.ThrowingRunnablein a new daemon thread and be notified of the result in aCompletableFuture.
-
-
-
Method Detail
-
shutdown
java.util.concurrent.CompletableFuture<java.lang.Void> shutdown()
Shutdown the component. When this method returns, the component should not accept any new load.- Returns:
- A future that is completed once all load on the component is completed
-
isShutdown
boolean isShutdown()
- Returns:
- True if
shutdown()has been called.
-
shutdown
static java.util.concurrent.CompletableFuture<java.lang.Void> shutdown(Container component)
Utility method to shutdown all Gracefuls within a container.- Parameters:
component- The container in which to look forGracefuls- Returns:
- A
CompletableFuturethat is complete once all returns fromshutdown()of the containedGracefuls are complete.
-
shutdown
static java.util.concurrent.CompletableFuture<java.lang.Void> shutdown(Graceful.ThrowingRunnable runnable)
Utility method to execute aGraceful.ThrowingRunnablein a new daemon thread and be notified of the result in aCompletableFuture.- Parameters:
runnable- the ThrowingRunnable to run.- Returns:
- the CompletableFuture to be notified when the runnable either completes or fails.
-
-