pub enum PollOutcome {
Updated {
new_entries: u64,
},
NotModified,
Failed {
backoff: Duration,
kind: FailureKind,
detail: String,
},
}Expand description
The outcome of polling a single feed. Lets the scheduler decide how to reschedule (and lets tests assert what happened) without inspecting the DB.
Variants§
Updated
The feed was fetched, parsed, and stored. new_entries is the number of
entries inserted or updated by this poll.
NotModified
The server returned 304 Not Modified — nothing changed, nothing stored.
Failed
The fetch or parse failed; the feed was left intact and skipped. Carries the suggested backoff before the next attempt. Never a panic.
kind and detail are the reason, and they exist because their
absence cost a production investigation. Until #159 the error was
logged here and discarded, so feeds recorded that a feed was failing
and never why — which is how sixty feeds broken by our own 304 handling
looked exactly like sixty dead blogs. kind is a small closed
vocabulary so failures can be counted by cause; detail is the message
for a human reading one row.
Trait Implementations§
Source§impl Clone for PollOutcome
impl Clone for PollOutcome
Source§impl Debug for PollOutcome
impl Debug for PollOutcome
impl Eq for PollOutcome
Source§impl PartialEq for PollOutcome
impl PartialEq for PollOutcome
impl StructuralPartialEq for PollOutcome
Auto Trait Implementations§
impl Freeze for PollOutcome
impl RefUnwindSafe for PollOutcome
impl Send for PollOutcome
impl Sync for PollOutcome
impl Unpin for PollOutcome
impl UnsafeUnpin for PollOutcome
impl UnwindSafe for PollOutcome
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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