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: TTarget store (may be a clone of the source store on native).
hook: HAtomic target-batch extension.
budget: RelayBudgetPer-fire work cap.
Implementations§
Source§impl<T: NamespaceStore, H: RelayHook> RelayHandler<T, H>
impl<T: NamespaceStore, H: RelayHook> RelayHandler<T, H>
Sourcepub async fn deliver_with_metrics<S: NamespaceStore>(
&self,
ctx: &TimerCtx<'_, S>,
timer: &DueTimer,
metrics: &dyn Metrics,
) -> Result<Fired, StoreError>
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<S: NamespaceStore, T: NamespaceStore, H: RelayHook> TimerHandler<S> for RelayHandler<T, H>
impl<S: NamespaceStore, T: NamespaceStore, H: RelayHook> TimerHandler<S> for RelayHandler<T, H>
Auto Trait Implementations§
impl<T, H> Freeze for RelayHandler<T, H>
impl<T, H> RefUnwindSafe for RelayHandler<T, H>where
T: RefUnwindSafe,
H: RefUnwindSafe,
impl<T, H> Send for RelayHandler<T, H>
impl<T, H> Sync for RelayHandler<T, H>
impl<T, H> Unpin for RelayHandler<T, H>
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> 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