Class Watchdog (2.51.0)

  public 
  
 final 
  
 class 
 Watchdog 
  
 implements 
  
 Runnable 
 , 
  
 BackgroundResource 
 

Prevents the streams from hanging indefinitely. This middleware garbage collects idle streams in case the user forgot to close a ServerStream or if a connection is reset and GRPC does not get notified.

For every checkInterval , this class checks two thresholds:

  • waitingTimeout: the amount of time to wait for a response (after the caller signaled demand) before forcefully closing the stream. Duration.ZERO disables the timeout.
  • idleTimeout: the amount of time to wait before assuming that the caller forgot to close the stream and forcefully closing the stream. This is measured from the last time the caller had no outstanding demand. Duration.ZERO disables the timeout.

Inheritance

java.lang.Object > Watchdog

Static Methods

create(ApiClock clock, Duration scheduleInterval, ScheduledExecutorService executor)

  public 
  
 static 
  
 Watchdog 
  
 create 
 ( 
 ApiClock 
  
 clock 
 , 
  
 Duration 
  
 scheduleInterval 
 , 
  
 ScheduledExecutorService 
  
 executor 
 ) 
 

This method is obsolete. Use #createDuration(ApiClock, java.time.Duration, ScheduledExecutorService) instead.

Parameters
Name
Description
clock
scheduleInterval
org.threeten.bp.Duration
Returns
Type
Description

createDuration(ApiClock clock, Duration scheduleInterval, ScheduledExecutorService executor)

  public 
  
 static 
  
 Watchdog 
  
 createDuration 
 ( 
 ApiClock 
  
 clock 
 , 
  
 Duration 
  
 scheduleInterval 
 , 
  
 ScheduledExecutorService 
  
 executor 
 ) 
 

returns a Watchdog which is scheduled at the provided interval.

Parameters
Name
Description
clock
scheduleInterval
Returns
Type
Description

Methods

<ResponseT>watch(ResponseObserver<ResponseT> innerObserver, Duration waitTimeout, Duration idleTimeout)

  public 
  
 ResponseObserver<ResponseT> 
  
< ResponseT>watch 
 ( 
 ResponseObserver<ResponseT> 
  
 innerObserver 
 , 
  
 Duration 
  
 waitTimeout 
 , 
  
 Duration 
  
 idleTimeout 
 ) 
 

This method is obsolete. Use #watchDuration(ResponseObserver, java.time.Duration, java.time.Duration) instead.

Parameters
Name
Description
innerObserver
ResponseObserver < ResponseT >
waitTimeout
org.threeten.bp.Duration
idleTimeout
org.threeten.bp.Duration
Returns
Type
Description
ResponseObserver < ResponseT >

<ResponseT>watchDuration(ResponseObserver<ResponseT> innerObserver, Duration waitTimeout, Duration idleTimeout)

  public 
  
 ResponseObserver<ResponseT> 
  
< ResponseT>watchDuration 
 ( 
 ResponseObserver<ResponseT> 
  
 innerObserver 
 , 
  
 Duration 
  
 waitTimeout 
 , 
  
 Duration 
  
 idleTimeout 
 ) 
 

Wraps the target observer with timing constraints.

Parameters
Name
Description
innerObserver
ResponseObserver < ResponseT >
waitTimeout
idleTimeout
Returns
Type
Description
ResponseObserver < ResponseT >

awaitTermination(long duration, TimeUnit unit)

  public 
  
 boolean 
  
 awaitTermination 
 ( 
 long 
  
 duration 
 , 
  
 TimeUnit 
  
 unit 
 ) 
 

Blocks until all work has completed execution after a shutdown request, or the timeout occurs, or the current thread is interrupted, whichever happens first.

Parameters
Name
Description
duration
unit
Returns
Type
Description
Exceptions
Type
Description

close()

  public 
  
 void 
  
 close 
 () 
 

isShutdown()

  public 
  
 boolean 
  
 isShutdown 
 () 
 

Returns true if this background resource has been shut down.

Returns
Type
Description

isTerminated()

  public 
  
 boolean 
  
 isTerminated 
 () 
 

Returns true if all work has completed following shut down. Note that isTerminated is never true unless either shutdown or shutdownNow was called first.

Returns
Type
Description

run()

  public 
  
 void 
  
 run 
 () 
 

shutdown()

  public 
  
 void 
  
 shutdown 
 () 
 

Initiates an orderly shutdown in which previously submitted work is finished, but no new work will be accepted. Invocation has no additional effect if already shut down.

This method does not wait for previously submitted work to complete execution. Use awaitTermination to do that.

shutdownNow()

  public 
  
 void 
  
 shutdownNow 
 () 
 

Attempts to stop all actively executing work and halts the processing of waiting work.

This method does not wait for actively executing work to terminate. Use awaitTermination to do that.

There are no guarantees beyond best-effort attempts to stop processing actively executing work. For example, typical implementations will cancel via Thread.interrupt(), so any task that fails to respond to interrupts may never terminate.

Create a Mobile Website
View Site in Mobile | Classic
Share by: