pub struct Retry<F> { /* private fields */ }Expand description
A facade that re-queues seeds reported with Report::Retry.
Retried seeds wait in the facade until their delay passes; they are not
pushed again, so facades inside it never refuse them. Waiting seeds are
held in memory; they are bounded by the requests that failed, not by the
size of the frontier. Seeds out of
retries are reported inwards as Report::Failed and refused with
Ack::RetryRefused.
Implementations§
Trait Implementations§
Source§impl<F: Frontier> Frontier for Retry<F>
impl<F: Frontier> Frontier for Retry<F>
Source§fn push(&self, seed: Seed) -> impl Future<Output = Result<Admission>> + Send
fn push(&self, seed: Seed) -> impl Future<Output = Result<Admission>> + Send
Offers a seed, which the frontier may refuse. Read more
Source§async fn pop(&self) -> Result<NextSeed>
async fn pop(&self) -> Result<NextSeed>
Takes the next seed that is ready to be crawled. Read more
Auto Trait Implementations§
impl<F> !Freeze for Retry<F>
impl<F> RefUnwindSafe for Retry<F>where
F: RefUnwindSafe,
impl<F> Send for Retry<F>where
F: Send,
impl<F> Sync for Retry<F>where
F: Sync,
impl<F> Unpin for Retry<F>where
F: Unpin,
impl<F> UnsafeUnpin for Retry<F>where
F: UnsafeUnpin,
impl<F> UnwindSafe for Retry<F>where
F: UnwindSafe,
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
Mutably borrows from an owned value. Read more
Source§impl<F> FrontierExt for Fwhere
F: Frontier,
impl<F> FrontierExt for Fwhere
F: Frontier,
Source§fn dedup_with<S: SeenSet>(self, seen: S) -> Dedup<Self, S>
fn dedup_with<S: SeenSet>(self, seen: S) -> Dedup<Self, S>
Refuses seeds seen before, remembering them in
seen.Source§fn allow_hosts<I>(
self,
hosts: I,
) -> Filter<Self, impl Fn(&Seed) -> bool + Send + Sync + 'static>
fn allow_hosts<I>( self, hosts: I, ) -> Filter<Self, impl Fn(&Seed) -> bool + Send + Sync + 'static>
Refuses seeds outside
hosts and their subdomains, e.g. to keep a
crawl from following links off-site.Source§fn avoid_traps(self) -> AvoidTraps<Self>
fn avoid_traps(self) -> AvoidTraps<Self>
Bounds expanding URL prefixes with conservative, configurable
heuristics. Opt in alongside robots.txt and deduplication; legitimate
large archives or opaque identifiers may need higher budgets. Read more
Source§fn avoid_traps_with(self, policy: TrapPolicy) -> AvoidTraps<Self>
fn avoid_traps_with(self, policy: TrapPolicy) -> AvoidTraps<Self>
Bounds expanding URL prefixes using
policy, see Self::avoid_traps.Source§fn retry(self, max_retries: u32) -> Retry<Self>
fn retry(self, max_retries: u32) -> Retry<Self>
Retries failed seeds up to
max_retries times with exponential
backoff.Source§fn retry_with(self, policy: RetryPolicy) -> Retry<Self>
fn retry_with(self, policy: RetryPolicy) -> Retry<Self>
Retries failed seeds according to
policy.Source§fn tag_backoff(self) -> TagBackoff<Self>
fn tag_backoff(self) -> TagBackoff<Self>
Holds back seeds of paused tags.
Source§fn revisit<T: Revisit>(self) -> Revisits<Self, T>where
Self: Schedule,
fn revisit<T: Revisit>(self) -> Revisits<Self, T>where
Self: Schedule,
Crawls pages again on a schedule: a seed reported done or failed is
crawled again after its tag’s
Revisit::interval, so the crawl
keeps going, waiting for the next revisit once nothing else is
queued. Read moreSource§fn score<S: Score>(self, scorer: S) -> Scored<Self, S>
fn score<S: Score>(self, scorer: S) -> Scored<Self, S>
Adds
scorer’s score to the priority of every seed pushed, so a
frontier that orders by priority crawls the best seeds first. Read moreSource§fn layer<L: FrontierLayer<Self>>(self, layer: L) -> L::Frontier
fn layer<L: FrontierLayer<Self>>(self, layer: L) -> L::Frontier
Wraps the frontier with a custom facade.