#[non_exhaustive]pub struct ConsumerRuntime {
pub transport: Arc<dyn MessageTransport>,
pub container: Arc<FrozenDiContainer>,
pub poll: Duration,
pub batch: usize,
pub max_retries: u32,
pub dedupe_ttl_secs: u64,
pub concurrency: usize,
}Expand description
Drives one transport against the link-time handler registry.
Spawn from ArclyPlugin::on_start. The dispatch map is frozen at spawn —
the polling loop performs immutable HashMap reads only.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.transport: Arc<dyn MessageTransport>§container: Arc<FrozenDiContainer>§poll: Duration§batch: usize§max_retries: u32Failed deliveries per message before dead-lettering.
dedupe_ttl_secs: u64TTL for the consume-side dedupe claim (when an IdempotencyStore
is available in the DI container).
concurrency: usizeMessages processed concurrently per polled batch. 0/1 keeps the
historical strictly-ordered sequential behaviour; higher values trade
cross-message ordering within a batch for throughput (per-message
dedupe and retries are unaffected — attempts is a sharded map).
Implementations§
Source§impl ConsumerRuntime
impl ConsumerRuntime
Sourcepub fn new(
transport: Arc<dyn MessageTransport>,
container: Arc<FrozenDiContainer>,
) -> Self
pub fn new( transport: Arc<dyn MessageTransport>, container: Arc<FrozenDiContainer>, ) -> Self
Sensible defaults: 300ms poll, batch 32, 3 retries, 1h dedupe TTL, sequential processing. Chain setters to adjust.
pub fn poll(self, v: Duration) -> Self
pub fn batch(self, v: usize) -> Self
pub fn max_retries(self, v: u32) -> Self
pub fn dedupe_ttl_secs(self, v: u64) -> Self
pub fn concurrency(self, v: usize) -> Self
pub fn spawn(self)
Auto Trait Implementations§
impl !RefUnwindSafe for ConsumerRuntime
impl !UnwindSafe for ConsumerRuntime
impl Freeze for ConsumerRuntime
impl Send for ConsumerRuntime
impl Sync for ConsumerRuntime
impl Unpin for ConsumerRuntime
impl UnsafeUnpin for ConsumerRuntime
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request