@BetaApi public final class Watchdog extends Object implements Runnable, BackgroundResource
For every checkInterval, this class checks two thresholds:
| Modifier and Type | Method and Description |
|---|---|
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.
|
void |
close() |
static Watchdog |
create(com.google.api.core.ApiClock clock,
org.threeten.bp.Duration scheduleInterval,
ScheduledExecutorService executor)
returns a Watchdog which is scheduled at the provided interval.
|
boolean |
isShutdown()
Returns true if this background resource has been shut down.
|
boolean |
isTerminated()
Returns true if all work has completed following shut down.
|
void |
run() |
void |
shutdown()
Initiates an orderly shutdown in which previously submitted work is finished, but no new work
will be accepted.
|
void |
shutdownNow()
Attempts to stop all actively executing work and halts the processing of waiting work.
|
<ResponseT> |
watch(ResponseObserver<ResponseT> innerObserver,
org.threeten.bp.Duration waitTimeout,
org.threeten.bp.Duration idleTimeout)
Wraps the target observer with timing constraints.
|
public static Watchdog create(com.google.api.core.ApiClock clock, org.threeten.bp.Duration scheduleInterval, ScheduledExecutorService executor)
public <ResponseT> ResponseObserver<ResponseT> watch(ResponseObserver<ResponseT> innerObserver, @Nonnull org.threeten.bp.Duration waitTimeout, @Nonnull org.threeten.bp.Duration idleTimeout)
public void shutdown()
BackgroundResourceThis method does not wait for previously submitted work to complete execution. Use awaitTermination to do that.
shutdown in interface BackgroundResourcepublic boolean isShutdown()
BackgroundResourceisShutdown in interface BackgroundResourcepublic boolean isTerminated()
BackgroundResourceisTerminated in interface BackgroundResourcepublic void shutdownNow()
BackgroundResourceThis 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.
shutdownNow in interface BackgroundResourcepublic boolean awaitTermination(long duration,
TimeUnit unit)
throws InterruptedException
BackgroundResourceawaitTermination in interface BackgroundResourceInterruptedExceptionpublic void close()
close in interface AutoCloseable