Skip to main content

Delay

Enum Delay 

Source
#[non_exhaustive]
pub enum Delay { DlxTtl { waiting_queue: Option<String>, }, DelayedMessageExchange { exchange: Option<String>, }, }
Expand description

How a subscription handles retry_after / nack_after delays.

Passed to RabbitQueue::delay. There is no default that enables it: a waiting queue or delayed exchange is infrastructure the user owns, so opting in is explicit.

§Examples

use ruststream_lapin::{Delay, RabbitQueue};

// Waiting queue named `orders.retry` (the default derived from the origin queue):
let orders = RabbitQueue::new("orders").delay(Delay::dlx_ttl());
// Or an explicit waiting-queue name:
let named = RabbitQueue::new("orders").delay(Delay::dlx_ttl_named("orders.wait"));

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

DlxTtl

Route delayed redeliveries through a TTL waiting queue whose dead-letter target is the origin queue.

§Classic-queue caveat

A classic queue releases expired messages only from its head, so a short-TTL message stuck behind a long-TTL one waits for the long one. Use one waiting queue per delay class (or a quorum queue, which does not have this head-of-line constraint) when delays vary widely, or switch to plugin_dme, which has no head-of-line constraint.

Fields

§waiting_queue: Option<String>

The waiting queue name; None derives <origin>.retry.

§

DelayedMessageExchange

Route delayed redeliveries through the rabbitmq_delayed_message_exchange plugin: the message is re-published to an x-delayed-message exchange with an x-delay header, and the plugin releases it to the origin queue after the delay. Unlike the classic waiting queue, mixed delays do not block each other. Requires the plugin on the broker, so it is behind the plugin-dme feature.

Fields

§exchange: Option<String>

The delayed-message exchange name; None derives <origin>.delay.

Implementations§

Source§

impl Delay

Source

pub const fn dlx_ttl() -> Self

A TTL waiting queue named <origin>.retry.

Source

pub fn dlx_ttl_named(name: impl Into<String>) -> Self

A TTL waiting queue with an explicit name.

Source

pub const fn plugin_dme() -> Self

A delayed-message-exchange named <origin>.delay.

Source

pub fn plugin_dme_named(name: impl Into<String>) -> Self

A delayed-message-exchange with an explicit name (share one across queues if you like).

Trait Implementations§

Source§

impl Clone for Delay

Source§

fn clone(&self) -> Delay

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Delay

Source§

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

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

impl Eq for Delay

Source§

impl PartialEq for Delay

Source§

fn eq(&self, other: &Delay) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Delay

Auto Trait Implementations§

§

impl Freeze for Delay

§

impl RefUnwindSafe for Delay

§

impl Send for Delay

§

impl Sync for Delay

§

impl Unpin for Delay

§

impl UnsafeUnpin for Delay

§

impl UnwindSafe for Delay

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<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> CompatExt for T

Source§

fn compat(self) -> Compat<T>
where T: Sized,

Applies the Compat adapter by value. Read more
Source§

fn compat_ref(&self) -> Compat<&T>

Applies the Compat adapter by shared reference. Read more
Source§

fn compat_mut(&mut self) -> Compat<&mut T>

Applies the Compat adapter by mutable reference. 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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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