pub struct ServerProbePolicy {
pub probe_count: u32,
pub min_hit_rate_pct: f32,
}Expand description
Policy for probing backup servers before committing all missing articles to them.
When an article cascades past the highest-priority server, the dispatcher sends a small sample of missing articles as “probes” to the next-priority server instead of immediately routing the full backlog. Only if the probe hit-rate meets the threshold is the server approved for all remaining cascade articles. If not, the server is rejected for this job and remaining articles cascade further or fail fast.
This avoids the O(N × servers) cascade cost for fail-heavy NZBs where backup servers are equally unhelpful (e.g. DMCA-removed or out-of-retention content that no provider carries).
Fields§
§probe_count: u32How many articles to probe before deciding whether a backup server is
useful for this job. Default: 10.
min_hit_rate_pct: f32Minimum percentage (0–100) of probed articles that must succeed for
the server to be approved. If the hit-rate falls below this, the server
is rejected for this job and the remaining cascade articles skip it.
Default: 10.0 (at least 1 out of every 10 probes must succeed).
Trait Implementations§
Source§impl Clone for ServerProbePolicy
impl Clone for ServerProbePolicy
Source§fn clone(&self) -> ServerProbePolicy
fn clone(&self) -> ServerProbePolicy
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ServerProbePolicy
impl Debug for ServerProbePolicy
Source§impl Default for ServerProbePolicy
impl Default for ServerProbePolicy
Source§fn default() -> ServerProbePolicy
fn default() -> ServerProbePolicy
Auto Trait Implementations§
impl Freeze for ServerProbePolicy
impl RefUnwindSafe for ServerProbePolicy
impl Send for ServerProbePolicy
impl Sync for ServerProbePolicy
impl Unpin for ServerProbePolicy
impl UnsafeUnpin for ServerProbePolicy
impl UnwindSafe for ServerProbePolicy
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more