pub trait QueueProvider: Send + Sync {
// Required methods
fn send_message<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
queue: &'life1 QueueName,
message: &'life2 Message,
) -> Pin<Box<dyn Future<Output = Result<MessageId, QueueError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn send_messages<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
queue: &'life1 QueueName,
messages: &'life2 [Message],
) -> Pin<Box<dyn Future<Output = Result<Vec<MessageId>, QueueError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn receive_message<'life0, 'life1, 'async_trait>(
&'life0 self,
queue: &'life1 QueueName,
timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<Option<ReceivedMessage>, QueueError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn receive_messages<'life0, 'life1, 'async_trait>(
&'life0 self,
queue: &'life1 QueueName,
max_messages: u32,
timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<Vec<ReceivedMessage>, QueueError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn complete_message<'life0, 'life1, 'async_trait>(
&'life0 self,
receipt: &'life1 ReceiptHandle,
) -> Pin<Box<dyn Future<Output = Result<(), QueueError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn abandon_message<'life0, 'life1, 'async_trait>(
&'life0 self,
receipt: &'life1 ReceiptHandle,
) -> Pin<Box<dyn Future<Output = Result<(), QueueError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn dead_letter_message<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
receipt: &'life1 ReceiptHandle,
reason: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<(), QueueError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn create_session_client<'life0, 'life1, 'async_trait>(
&'life0 self,
queue: &'life1 QueueName,
session_id: Option<SessionId>,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn SessionProvider>, QueueError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn provider_type(&self) -> ProviderType;
fn supports_sessions(&self) -> SessionSupport;
fn supports_batching(&self) -> bool;
fn max_batch_size(&self) -> u32;
}Expand description
Interface implemented by specific queue providers (Azure, AWS, etc.)
Required Methods§
Sourcefn send_message<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
queue: &'life1 QueueName,
message: &'life2 Message,
) -> Pin<Box<dyn Future<Output = Result<MessageId, QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn send_message<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
queue: &'life1 QueueName,
message: &'life2 Message,
) -> Pin<Box<dyn Future<Output = Result<MessageId, QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Send single message
Sourcefn send_messages<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
queue: &'life1 QueueName,
messages: &'life2 [Message],
) -> Pin<Box<dyn Future<Output = Result<Vec<MessageId>, QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn send_messages<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
queue: &'life1 QueueName,
messages: &'life2 [Message],
) -> Pin<Box<dyn Future<Output = Result<Vec<MessageId>, QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Send multiple messages
Sourcefn receive_message<'life0, 'life1, 'async_trait>(
&'life0 self,
queue: &'life1 QueueName,
timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<Option<ReceivedMessage>, QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn receive_message<'life0, 'life1, 'async_trait>(
&'life0 self,
queue: &'life1 QueueName,
timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<Option<ReceivedMessage>, QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Receive single message
Sourcefn receive_messages<'life0, 'life1, 'async_trait>(
&'life0 self,
queue: &'life1 QueueName,
max_messages: u32,
timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<Vec<ReceivedMessage>, QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn receive_messages<'life0, 'life1, 'async_trait>(
&'life0 self,
queue: &'life1 QueueName,
max_messages: u32,
timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<Vec<ReceivedMessage>, QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Receive multiple messages
Sourcefn complete_message<'life0, 'life1, 'async_trait>(
&'life0 self,
receipt: &'life1 ReceiptHandle,
) -> Pin<Box<dyn Future<Output = Result<(), QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn complete_message<'life0, 'life1, 'async_trait>(
&'life0 self,
receipt: &'life1 ReceiptHandle,
) -> Pin<Box<dyn Future<Output = Result<(), QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Complete message processing
Sourcefn abandon_message<'life0, 'life1, 'async_trait>(
&'life0 self,
receipt: &'life1 ReceiptHandle,
) -> Pin<Box<dyn Future<Output = Result<(), QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn abandon_message<'life0, 'life1, 'async_trait>(
&'life0 self,
receipt: &'life1 ReceiptHandle,
) -> Pin<Box<dyn Future<Output = Result<(), QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Abandon message for retry
Sourcefn dead_letter_message<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
receipt: &'life1 ReceiptHandle,
reason: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<(), QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn dead_letter_message<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
receipt: &'life1 ReceiptHandle,
reason: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<(), QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Send to dead letter queue
Sourcefn create_session_client<'life0, 'life1, 'async_trait>(
&'life0 self,
queue: &'life1 QueueName,
session_id: Option<SessionId>,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn SessionProvider>, QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn create_session_client<'life0, 'life1, 'async_trait>(
&'life0 self,
queue: &'life1 QueueName,
session_id: Option<SessionId>,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn SessionProvider>, QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Create session client
Sourcefn provider_type(&self) -> ProviderType
fn provider_type(&self) -> ProviderType
Get provider type
Sourcefn supports_sessions(&self) -> SessionSupport
fn supports_sessions(&self) -> SessionSupport
Get session support level
Sourcefn supports_batching(&self) -> bool
fn supports_batching(&self) -> bool
Check batch operation support
Sourcefn max_batch_size(&self) -> u32
fn max_batch_size(&self) -> u32
Get maximum batch size