A variable that updates itself. latest
can be called from multiple threads, which are all guaranteed to get the latest var.
An AutoUpdatingVar attempts to get the variable immediately upon class instantiation. If this fails, there are no further attempts (unless specified via handleInitializationError
), and the effect returned by the ready
method will complete unsuccesfully. If it succeeds, the effect completes successfully and latest
can be safely called.
Failed updates other than the first (those that throw an exception) may be retried with various configurations.
A successful update schedules the next update, with an interval that can vary based on the just-updated var.
Value parameters
- blockUntilReadyTimeout
-
If specified, will cause the AutoUpdatingVar constructor to block until an initial value is computed, or there is a timeout or failure. This means that the effect returned by
ready
will always be complete. - handleInitializationError
-
A PartialFunction used to recover from exceptions in the var initialization. If unspecified, the exception will fail the effect returned by
ready
. - periodic
-
A Periodic instance used to update the var
- updateAttemptStrategy
-
Configuration for retrying updates on failure
- updateExistingVar
-
If specified, will be used to update the var on all updates after initialization. Allows for the use of the current var when updating.
- updateInterval
-
Configuration for the update interval
- updateVar
-
A thunk to initialize and update the var
- varNameOverride
-
A name for this variable, used in logging. If unspecified, the simple class name of T will be used.
Attributes
- Companion
- object
- Graph
-
- Supertypes
-
trait AutoCloseableclass Objecttrait Matchableclass Any