pub struct AutoSleep {
pub threshold: Duration,
pub io_errors_as_flood_of: Option<Duration>,
}Expand description
Automatically sleep on FLOOD_WAIT and retry once on transient I/O errors.
Default retry policy. Sleeps on FLOOD_WAIT, backs off on I/O errors.
let policy = AutoSleep {
threshold: std::time::Duration::from_secs(60),
io_errors_as_flood_of: Some(std::time::Duration::from_secs(1)),
};Fields§
§threshold: DurationMaximum flood-wait the library will automatically sleep through.
If Telegram asks us to wait longer than this, the error is propagated.
io_errors_as_flood_of: Option<Duration>If Some(d), treat the first I/O error as a d-second flood wait
and retry once. None propagates I/O errors immediately.
Trait Implementations§
Source§impl RetryPolicy for AutoSleep
impl RetryPolicy for AutoSleep
Source§fn should_retry(&self, ctx: &RetryContext) -> ControlFlow<(), Duration>
fn should_retry(&self, ctx: &RetryContext) -> ControlFlow<(), Duration>
Decide whether to retry the failed request. Read more
Auto Trait Implementations§
impl Freeze for AutoSleep
impl RefUnwindSafe for AutoSleep
impl Send for AutoSleep
impl Sync for AutoSleep
impl Unpin for AutoSleep
impl UnsafeUnpin for AutoSleep
impl UnwindSafe for AutoSleep
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<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>
Converts
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>
Converts
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