pub struct RiRabbitMQQueue { /* private fields */ }Expand description
RabbitMQ queue implementation for the Ri queue system.
This struct provides a RabbitMQ implementation of the RiQueue trait, allowing sending and receiving messages using RabbitMQ as the underlying message broker.
Implementations§
Source§impl RiRabbitMQQueue
impl RiRabbitMQQueue
Sourcepub async fn new_with_connection(
name: &str,
connection: Connection,
) -> RiResult<Self>
pub async fn new_with_connection( name: &str, connection: Connection, ) -> RiResult<Self>
Sourcepub async fn new_with_management(
name: &str,
connection: Connection,
management_url: &str,
management_username: &str,
management_password: &str,
) -> RiResult<Self>
pub async fn new_with_management( name: &str, connection: Connection, management_url: &str, management_username: &str, management_password: &str, ) -> RiResult<Self>
Creates a new RabbitMQ queue instance with management API support.
§Parameters
name: The name of the queueconnection: The existing RabbitMQ connectionmanagement_url: RabbitMQ management API URL (e.g., “http://localhost:15672”)management_username: Management API usernamemanagement_password: Management API password
§Returns
A new RiRabbitMQQueue instance wrapped in RiResult
Trait Implementations§
Source§impl RiQueue for RiRabbitMQQueue
impl RiQueue for RiRabbitMQQueue
Source§fn create_producer<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = RiResult<Box<dyn RiQueueProducer>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn create_producer<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = RiResult<Box<dyn RiQueueProducer>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Creates a new producer for the RabbitMQ queue.
§Returns
A new RiQueueProducer instance wrapped in RiResult
Source§fn create_consumer<'life0, 'life1, 'async_trait>(
&'life0 self,
consumer_group: &'life1 str,
) -> Pin<Box<dyn Future<Output = RiResult<Box<dyn RiQueueConsumer>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn create_consumer<'life0, 'life1, 'async_trait>(
&'life0 self,
consumer_group: &'life1 str,
) -> Pin<Box<dyn Future<Output = RiResult<Box<dyn RiQueueConsumer>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn get_stats<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = RiResult<RiQueueStats>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_stats<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = RiResult<RiQueueStats>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Gets statistics for the RabbitMQ queue.
This implementation integrates with RabbitMQ management API to provide detailed queue statistics including message counts, consumer counts, and processing metrics.
§Returns
RiQueueStats containing detailed queue statistics wrapped in RiResult
Auto Trait Implementations§
impl Freeze for RiRabbitMQQueue
impl !RefUnwindSafe for RiRabbitMQQueue
impl Send for RiRabbitMQQueue
impl Sync for RiRabbitMQQueue
impl Unpin for RiRabbitMQQueue
impl UnsafeUnpin for RiRabbitMQQueue
impl !UnwindSafe for RiRabbitMQQueue
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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<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>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§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::RequestSource§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