Skip to main content

CircuitBreakerHooks

Trait CircuitBreakerHooks 

Source
pub trait CircuitBreakerHooks: Send + Sync {
    // Provided methods
    fn allow_request(&self, _worker_id: &str, _request: &WorkerRequest) -> bool { ... }
    fn on_request_accepted<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        _worker_id: &'life1 str,
        _request: &'life2 WorkerRequest,
    ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait { ... }
    fn on_request_success<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        _worker_id: &'life1 str,
        _response: &'life2 WorkerResponse,
    ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait { ... }
    fn on_request_failure<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        _worker_id: &'life1 str,
        _error: &'life2 WorkerProtocolError,
    ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait { ... }
    fn on_request_rejected<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        _worker_id: Option<&'life1 str>,
        _request: &'life2 WorkerRequest,
        _reason: WorkerErrorCode,
    ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait { ... }
}
Expand description

Optional hook surface for circuit breaker integration.

Provided Methods§

Source

fn allow_request(&self, _worker_id: &str, _request: &WorkerRequest) -> bool

Returns false to reject a request before queueing.

Source

fn on_request_accepted<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _worker_id: &'life1 str, _request: &'life2 WorkerRequest, ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Called after a request is accepted for execution.

Source

fn on_request_success<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _worker_id: &'life1 str, _response: &'life2 WorkerResponse, ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Called after a request succeeds.

Source

fn on_request_failure<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _worker_id: &'life1 str, _error: &'life2 WorkerProtocolError, ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Called after a request fails.

Source

fn on_request_rejected<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _worker_id: Option<&'life1 str>, _request: &'life2 WorkerRequest, _reason: WorkerErrorCode, ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Called after a request is rejected.

Implementors§