pub struct HttpSinkWithRetry { /* private fields */ }Expand description
HTTP webhook sink with retry logic
Unlike HttpSink, this implementation retries failed requests with exponential
backoff. It distinguishes between retryable errors (5xx, timeouts, network errors)
and non-retryable errors (4xx client errors).
§Example
let sink = HttpSinkWithRetry::new("webhook", "https://api.example.com/events")
.with_header("Authorization", "Bearer token123")
.with_retry_config(HttpRetryConfig {
max_retries: 5,
..Default::default()
});
sink.send(&event).await?;Implementations§
Source§impl HttpSinkWithRetry
impl HttpSinkWithRetry
pub fn new(name: impl Into<String>, url: impl Into<String>) -> Self
pub fn with_header( self, key: impl Into<String>, value: impl Into<String>, ) -> Self
pub fn with_retry_config(self, config: HttpRetryConfig) -> Self
Trait Implementations§
Source§impl Debug for HttpSinkWithRetry
impl Debug for HttpSinkWithRetry
Source§impl Sink for HttpSinkWithRetry
impl Sink for HttpSinkWithRetry
Source§fn send<'life0, 'life1, 'async_trait>(
&'life0 self,
event: &'life1 Event,
) -> Pin<Box<dyn Future<Output = Result<(), SinkError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn send<'life0, 'life1, 'async_trait>(
&'life0 self,
event: &'life1 Event,
) -> Pin<Box<dyn Future<Output = Result<(), SinkError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Send an event to this sink
Source§fn flush<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), SinkError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn flush<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), SinkError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Flush any buffered data
Source§fn close<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), SinkError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn close<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), SinkError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Close the sink
Auto Trait Implementations§
impl Freeze for HttpSinkWithRetry
impl !RefUnwindSafe for HttpSinkWithRetry
impl Send for HttpSinkWithRetry
impl Sync for HttpSinkWithRetry
impl Unpin for HttpSinkWithRetry
impl UnsafeUnpin for HttpSinkWithRetry
impl !UnwindSafe for HttpSinkWithRetry
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