Skip to main content

ProviderGate

Struct ProviderGate 

Source
pub struct ProviderGate { /* private fields */ }
Expand description

Bulkhead plus circuit breaker guarding one provider.

Implementations§

Source§

impl ProviderGate

Source

pub fn new(limits: ProviderLimits) -> Result<Self, String>

Gate for validated limits.

Source

pub fn try_acquire( &self, tenant_id: &str, priority: WorkPriority, now: Instant, ) -> Result<ProviderPermit, ProviderBlock>

Acquire a permit for tenant at priority.

Source

pub fn record_success(&self, permit: ProviderPermit)

Return a permit after success; closes a half-open circuit.

Source

pub fn record_failure(&self, permit: ProviderPermit, now: Instant)

Return a permit after failure; may open the circuit.

Source

pub fn release(&self, permit: ProviderPermit)

Give capacity back without judging the provider. Use this when the caller failed before or after the provider ran (store conflict, stale claim) so infrastructure errors do not trip the provider’s circuit.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more