pub struct ConsumerConfig {
pub ack_wait: Duration,
pub max_ack_pending: Option<i64>,
pub max_deliver: Option<i64>,
pub stream_buffer_size: Option<usize>,
pub command_prefetch: NonZeroUsize,
}Expand description
Controls JetStream consumer behaviour: acknowledgment window, backpressure, poison-pill protection, and internal buffer sizes.
Fields§
§ack_wait: DurationHow long the server waits for an ack before redelivering the message. Default: 30 s.
max_ack_pending: Option<i64>Maximum in-flight (unacked) messages. None uses the NATS default
(1 000). Set lower to apply backpressure on slow consumers.
Defaults to DEFAULT_MAX_ACK_PENDING.
max_deliver: Option<i64>Maximum delivery attempts per message. None means unlimited retries.
Set to a small number to drop poison-pill messages automatically.
Defaults to DEFAULT_MAX_DELIVER, leaving it unlimited would turn a
message no consumer can handle into an endless redelivery loop.
Overridden to 1 for a command declaring
Delivery::AtMostOnce:
such a command is acknowledged before it is handled, so any redelivery
would mean the handler ran twice, whatever this is set to.
stream_buffer_size: Option<usize>Capacity of the internal mpsc channel used by the auto-reconnect task.
None falls back to 1 000.
command_prefetch: NonZeroUsizeHow many commands one responder pulls ahead of handling them. Keep it
small so idle instances get the queued ones. Defaults to
DEFAULT_COMMAND_PREFETCH.
Implementations§
Source§impl ConsumerConfig
impl ConsumerConfig
Sourcepub fn buffer_size(&self) -> usize
pub fn buffer_size(&self) -> usize
Capacity of the channel between a subscription’s background forward task
and its consumer-facing stream, falling back to
DEFAULT_STREAM_BUFFER_SIZE.
Sourcepub(crate) fn pull_config(
&self,
durable_name: String,
filter_subjects: Vec<String>,
) -> Config
pub(crate) fn pull_config( &self, durable_name: String, filter_subjects: Vec<String>, ) -> Config
Builds a durable JetStream pull-consumer config for durable_name,
filtering on filter_subjects, with this struct’s tuning applied (ack
window, backpressure, poison-pill limit). None limits keep the
async-nats defaults.
All subjects go in filter_subjects (requires NATS 2.10+, which the
connection mandates). deliver_policy is All; ack_policy stays at
the async-nats default (Explicit, as required for pull consumers).
The in-flight limit is capped at buffer_size.
The two are separate fields, so shrinking the buffer alone would
otherwise let the broker deliver more than the client can hold, and the
surplus would be dropped and redelivered purely because of
backpressure.
Trait Implementations§
Source§impl Clone for ConsumerConfig
impl Clone for ConsumerConfig
Source§fn clone(&self) -> ConsumerConfig
fn clone(&self) -> ConsumerConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ConsumerConfig
impl Debug for ConsumerConfig
Auto Trait Implementations§
impl Freeze for ConsumerConfig
impl RefUnwindSafe for ConsumerConfig
impl Send for ConsumerConfig
impl Sync for ConsumerConfig
impl Unpin for ConsumerConfig
impl UnsafeUnpin for ConsumerConfig
impl UnwindSafe for ConsumerConfig
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> JsonCastable<CanonicalJsonValue> for T
impl<T> JsonCastable<Value> for T
§impl<D> OwoColorize for D
impl<D> OwoColorize for D
§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg] or
a color-specific method, such as [OwoColorize::green], Read more§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg] or
a color-specific method, such as [OwoColorize::on_yellow], Read more