@InterfaceAudience.Public @InterfaceStability.Evolving public final class ShutdownHookManager extends Object
ShutdownHookManager
enables running shutdownHook
in a deterministic order, higher priority first.
The JVM runs ShutdownHooks in a non-deterministic order or in parallel.
This class registers a single JVM shutdownHook and run all the
shutdownHooks registered to it (to this class) in order based on their
priority.
Unless a hook was registered with a shutdown explicitly set through
addShutdownHook(Runnable, int, long, TimeUnit)
,
the shutdown time allocated to it is set by the configuration option
CommonConfigurationKeysPublic.SERVICE_SHUTDOWN_TIMEOUT
in
core-site.xml
, with a default value of
CommonConfigurationKeysPublic.SERVICE_SHUTDOWN_TIMEOUT_DEFAULT
seconds.Modifier and Type | Field and Description |
---|---|
static TimeUnit |
TIME_UNIT_DEFAULT
The default time unit used: seconds.
|
static long |
TIMEOUT_MINIMUM
Minimum shutdown timeout: 1L second(s).
|
Modifier and Type | Method and Description |
---|---|
void |
addShutdownHook(Runnable shutdownHook,
int priority)
Adds a shutdownHook with a priority, the higher the priority
the earlier will run.
|
void |
addShutdownHook(Runnable shutdownHook,
int priority,
long timeout,
TimeUnit unit)
Adds a shutdownHook with a priority and timeout the higher the priority
the earlier will run.
|
void |
clearShutdownHooks()
clear all registered shutdownHooks.
|
static ShutdownHookManager |
get()
Return
ShutdownHookManager singleton. |
boolean |
hasShutdownHook(Runnable shutdownHook)
Indicates if a shutdownHook is registered or not.
|
boolean |
isShutdownInProgress()
Indicates if shutdown is in progress or not.
|
boolean |
removeShutdownHook(Runnable shutdownHook)
Removes a shutdownHook.
|
public static final long TIMEOUT_MINIMUM
public static final TimeUnit TIME_UNIT_DEFAULT
@InterfaceAudience.Public public static ShutdownHookManager get()
ShutdownHookManager
singleton.ShutdownHookManager
singleton.@InterfaceAudience.Public @InterfaceStability.Stable public void addShutdownHook(Runnable shutdownHook, int priority)
shutdownHook
- shutdownHook Runnable
priority
- priority of the shutdownHook.@InterfaceAudience.Public @InterfaceStability.Stable public void addShutdownHook(Runnable shutdownHook, int priority, long timeout, TimeUnit unit)
shutdownHook
- shutdownHook Runnable
priority
- priority of the shutdownHooktimeout
- timeout of the shutdownHookunit
- unit of the timeout TimeUnit
@InterfaceAudience.Public @InterfaceStability.Stable public boolean removeShutdownHook(Runnable shutdownHook)
shutdownHook
- shutdownHook to remove.@InterfaceAudience.Public @InterfaceStability.Stable public boolean hasShutdownHook(Runnable shutdownHook)
shutdownHook
- shutdownHook to check if registered.@InterfaceAudience.Public @InterfaceStability.Stable public boolean isShutdownInProgress()
@InterfaceAudience.Public @InterfaceStability.Stable public void clearShutdownHooks()
Copyright © 2021 Apache Software Foundation. All rights reserved.