Package io.grpc.internal
Class MaxConnectionIdleManager
- java.lang.Object
-
- io.grpc.internal.MaxConnectionIdleManager
-
public final class MaxConnectionIdleManager extends java.lang.Object
Monitors connection idle time; shutdowns the connection if the max connection idle is reached.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
MaxConnectionIdleManager.Ticker
-
Field Summary
Fields Modifier and Type Field Description private boolean
isActive
private long
maxConnectionIdleInNanos
private long
nextIdleMonitorTime
private java.util.concurrent.ScheduledExecutorService
scheduler
private boolean
shutdownDelayed
private java.util.concurrent.ScheduledFuture<?>
shutdownFuture
private java.lang.Runnable
shutdownTask
private static MaxConnectionIdleManager.Ticker
systemTicker
private MaxConnectionIdleManager.Ticker
ticker
-
Constructor Summary
Constructors Constructor Description MaxConnectionIdleManager(long maxConnectionIdleInNanos)
MaxConnectionIdleManager(long maxConnectionIdleInNanos, MaxConnectionIdleManager.Ticker ticker)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
onTransportActive()
There are outstanding RPCs on the transport.void
onTransportIdle()
There are no outstanding RPCs on the transport.void
onTransportTermination()
Transport is being terminated.void
start(java.lang.Runnable closeJob, java.util.concurrent.ScheduledExecutorService scheduler)
Start the initial scheduled shutdown given the transport status reaches max connection idle.
-
-
-
Field Detail
-
systemTicker
private static final MaxConnectionIdleManager.Ticker systemTicker
-
maxConnectionIdleInNanos
private final long maxConnectionIdleInNanos
-
ticker
private final MaxConnectionIdleManager.Ticker ticker
-
shutdownFuture
@CheckForNull private java.util.concurrent.ScheduledFuture<?> shutdownFuture
-
shutdownTask
private java.lang.Runnable shutdownTask
-
scheduler
private java.util.concurrent.ScheduledExecutorService scheduler
-
nextIdleMonitorTime
private long nextIdleMonitorTime
-
shutdownDelayed
private boolean shutdownDelayed
-
isActive
private boolean isActive
-
-
Constructor Detail
-
MaxConnectionIdleManager
public MaxConnectionIdleManager(long maxConnectionIdleInNanos)
-
MaxConnectionIdleManager
public MaxConnectionIdleManager(long maxConnectionIdleInNanos, MaxConnectionIdleManager.Ticker ticker)
-
-
Method Detail
-
start
public void start(java.lang.Runnable closeJob, java.util.concurrent.ScheduledExecutorService scheduler)
Start the initial scheduled shutdown given the transport status reaches max connection idle.- Parameters:
closeJob
- Closes the connection by sending GO_AWAY with status code NO_ERROR and ASCII debug data max_idle and then doing the graceful connection termination.
-
onTransportActive
public void onTransportActive()
There are outstanding RPCs on the transport.
-
onTransportIdle
public void onTransportIdle()
There are no outstanding RPCs on the transport.
-
onTransportTermination
public void onTransportTermination()
Transport is being terminated.
-
-