Skip to main content

RelayHandler

Struct RelayHandler 

Source
pub struct RelayHandler<T, H = NoHook> {
    pub target: T,
    pub hook: H,
    pub budget: RelayBudget,
}
Expand description

Pushes a source’s queued rows to a separately supplied target store. Distinct producers may upsert the same key when its value is identical. A key that is ever relay-deleted MUST have exactly one producer, so its source sequence orders every update and delete. Target rh rows never expire.

Fields§

§target: T

Target store (may be a clone of the source store on native).

§hook: H

Atomic target-batch extension.

§budget: RelayBudget

Per-fire work cap.

Implementations§

Source§

impl<T: NamespaceStore, H: RelayHook> RelayHandler<T, H>

Source

pub async fn deliver_with_metrics<S: NamespaceStore>( &self, ctx: &TimerCtx<'_, S>, timer: &DueTimer, metrics: &dyn Metrics, ) -> Result<Fired, StoreError>

Deliver one relay fire while recording source backlog and lag.

Trait Implementations§

Source§

impl<T: Debug, H: Debug> Debug for RelayHandler<T, H>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<S: NamespaceStore, T: NamespaceStore, H: RelayHook> TimerHandler<S> for RelayHandler<T, H>

Source§

fn kind(&self) -> TimerKind

The kind this handler decodes.
Source§

fn fire<'a>( &'a self, ctx: &'a TimerCtx<'a, S>, timer: &'a DueTimer, ) -> BoxFuture<'a, Result<Fired, StoreError>>

Prepare effects; the core atomically guards and removes the timer.
Source§

fn max_per_tick(&self) -> Option<u32>

Lowers the shared TickBudget::max_per_kind allowance for this kind.

Auto Trait Implementations§

§

impl<T, H> Freeze for RelayHandler<T, H>
where T: Freeze, H: Freeze,

§

impl<T, H> RefUnwindSafe for RelayHandler<T, H>

§

impl<T, H> Send for RelayHandler<T, H>
where T: Send, H: Send,

§

impl<T, H> Sync for RelayHandler<T, H>
where T: Sync, H: Sync,

§

impl<T, H> Unpin for RelayHandler<T, H>
where T: Unpin, H: Unpin,

§

impl<T, H> UnsafeUnpin for RelayHandler<T, H>
where T: UnsafeUnpin, H: UnsafeUnpin,

§

impl<T, H> UnwindSafe for RelayHandler<T, H>
where T: UnwindSafe, H: UnwindSafe,

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> MaybeSend for T
where T: Send + ?Sized,

Source§

impl<T> MaybeSync for T
where T: Sync + ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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