Broker

Trait Broker 

Source
pub trait Broker: Send + Sync {
    // Required methods
    fn safe_url(&self) -> String;
    fn consume<'life0, 'life1, 'async_trait>(
        &'life0 self,
        queue: &'life1 str,
        error_handler: Box<dyn Fn(BrokerError) + Send + Sync + 'static>,
    ) -> Pin<Box<dyn Future<Output = Result<(String, Box<dyn DeliveryStream>), BrokerError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn cancel<'life0, 'life1, 'async_trait>(
        &'life0 self,
        consumer_tag: &'life1 str,
    ) -> Pin<Box<dyn Future<Output = Result<(), BrokerError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn ack<'life0, 'life1, 'async_trait>(
        &'life0 self,
        delivery: &'life1 dyn Delivery,
    ) -> Pin<Box<dyn Future<Output = Result<(), BrokerError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn retry<'life0, 'life1, 'async_trait>(
        &'life0 self,
        delivery: &'life1 dyn Delivery,
        eta: Option<DateTime<Utc>>,
    ) -> Pin<Box<dyn Future<Output = Result<(), BrokerError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn send<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        message: &'life1 Message,
        queue: &'life2 str,
    ) -> Pin<Box<dyn Future<Output = Result<(), BrokerError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    fn increase_prefetch_count<'life0, 'async_trait>(
        &'life0 self,
    ) -> Pin<Box<dyn Future<Output = Result<(), BrokerError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn decrease_prefetch_count<'life0, 'async_trait>(
        &'life0 self,
    ) -> Pin<Box<dyn Future<Output = Result<(), BrokerError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn close<'life0, 'async_trait>(
        &'life0 self,
    ) -> Pin<Box<dyn Future<Output = Result<(), BrokerError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn reconnect<'life0, 'async_trait>(
        &'life0 self,
        connection_timeout: u32,
    ) -> Pin<Box<dyn Future<Output = Result<(), BrokerError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
}
Expand description

A message Broker is used as the transport for producing or consuming tasks.

Required Methods§

Source

fn safe_url(&self) -> String

Return a string representation of the broker URL with any sensitive information redacted.

Source

fn consume<'life0, 'life1, 'async_trait>( &'life0 self, queue: &'life1 str, error_handler: Box<dyn Fn(BrokerError) + Send + Sync + 'static>, ) -> Pin<Box<dyn Future<Output = Result<(String, Box<dyn DeliveryStream>), BrokerError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Consume messages from a queue.

If the connection is successful, this should return a unique consumer tag and a corresponding stream of Results where an Ok value is a Self::Delivery type that can be coerced into a Message and an Err value is a Self::DeliveryError type.

Source

fn cancel<'life0, 'life1, 'async_trait>( &'life0 self, consumer_tag: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<(), BrokerError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Cancel the consumer with the given consumer_tag.

Source

fn ack<'life0, 'life1, 'async_trait>( &'life0 self, delivery: &'life1 dyn Delivery, ) -> Pin<Box<dyn Future<Output = Result<(), BrokerError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Acknowledge a Delivery for deletion.

Source

fn retry<'life0, 'life1, 'async_trait>( &'life0 self, delivery: &'life1 dyn Delivery, eta: Option<DateTime<Utc>>, ) -> Pin<Box<dyn Future<Output = Result<(), BrokerError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Retry a delivery.

Source

fn send<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, message: &'life1 Message, queue: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<(), BrokerError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Send a Message into a queue.

Source

fn increase_prefetch_count<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<(), BrokerError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Increase the prefetch_count. This has to be done when a task with a future ETA is consumed.

Source

fn decrease_prefetch_count<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<(), BrokerError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Decrease the prefetch_count. This has to be done after a task with a future ETA is executed.

Source

fn close<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<(), BrokerError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Clone all channels and connection.

Source

fn reconnect<'life0, 'async_trait>( &'life0 self, connection_timeout: u32, ) -> Pin<Box<dyn Future<Output = Result<(), BrokerError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Try reconnecting in the event of some sort of connection error.

Implementors§