public class LearnerSnapshotThrottler extends Object
LearnerHandler
objects should call
beginSnapshot(boolean)
before sending a snapshot and
endSnapshot()
after finishing, successfully or not.Constructor and Description |
---|
LearnerSnapshotThrottler(int maxConcurrentSnapshots) |
LearnerSnapshotThrottler(int maxConcurrentSnapshots,
long timeoutMillis)
Constructs a new instance limiting the concurrent number of snapshots to
maxConcurrentSnapshots . |
Modifier and Type | Method and Description |
---|---|
LearnerSnapshot |
beginSnapshot(boolean essential)
Indicates that a new snapshot is about to be sent.
|
void |
endSnapshot()
Indicates that a snapshot has been completed.
|
public LearnerSnapshotThrottler(int maxConcurrentSnapshots, long timeoutMillis)
maxConcurrentSnapshots
.maxConcurrentSnapshots
- maximum concurrent number of snapshotstimeoutMillis
- milliseconds to attempt to wait when attempting to
begin a snapshot that would otherwise be throttled;
a value of zero means no waiting will be attemptedIllegalArgumentException
- when timeoutMillis
is negative or
maxConcurrentSnaphots
is less than 1public LearnerSnapshotThrottler(int maxConcurrentSnapshots)
public LearnerSnapshot beginSnapshot(boolean essential) throws SnapshotThrottleException, InterruptedException
essential
- if true
, do not throw an exception even
if throttling limit is reachedSnapshotThrottleException
- if throttling limit has been exceeded
and essential == false
,
even after waiting for the timeout
period, if anyInterruptedException
- if thread is interrupted while trying
to start a snapshot; cannot happen if
timeout is zeropublic void endSnapshot()
Copyright © 2008–2019 The Apache Software Foundation. All rights reserved.