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§
Sourcefn safe_url(&self) -> String
fn safe_url(&self) -> String
Return a string representation of the broker URL with any sensitive information redacted.
Sourcefn 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 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 Result
s 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.
Sourcefn 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 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
.
Sourcefn 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 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.
Sourcefn 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 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.
Sourcefn 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 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.
Sourcefn 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 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.
Sourcefn 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 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.