Struct FailoverPolicy
pub struct FailoverPolicy { /* private fields */ }Expand description
Stateful stale-owner policy for repeated fail_over_stale sweeps.
A policy must be reused across sweeps. Staleness is proved by observing the
same complete lease twice, at least grace_millis apart on the sweeper’s
local monotonic clock. Owner and sweeper wall clocks are never compared.
This deliberately adds one grace interval after a sweeper first discovers
an abandoned lease; a clock-skewed healthy owner cannot be stolen merely
because its heartbeat timestamp is far behind another node’s clock.
The worker is used in the explanatory error, and requeue controls whether
the failed configuration is created again as a waiting trial.
use atune_core::id::WorkerId;
use atune_core::storage::FailoverPolicy;
let policy = FailoverPolicy::new(60_000, WorkerId::new(7)).with_requeue(true);
assert_eq!(policy.grace_millis(), 60_000);
assert_eq!(policy.worker(), WorkerId::new(7));
assert!(policy.requeue());Implementations§
§impl FailoverPolicy
impl FailoverPolicy
pub fn with_requeue(self, requeue: bool) -> Self
pub fn with_requeue(self, requeue: bool) -> Self
Sets whether successfully failed-over configurations are re-enqueued.
pub const fn grace_millis(&self) -> u64
pub const fn grace_millis(&self) -> u64
Returns the heartbeat grace period in milliseconds.