pub enum ServiceBusCommand {
Show 21 variants
SwitchQueue {
queue_name: String,
queue_type: QueueType,
},
GetCurrentQueue,
GetQueueStatistics {
queue_name: String,
queue_type: QueueType,
},
PeekMessages {
max_count: u32,
from_sequence: Option<i64>,
},
ReceiveMessages {
max_count: u32,
},
CompleteMessage {
message_id: String,
},
AbandonMessage {
message_id: String,
},
DeadLetterMessage {
message_id: String,
reason: Option<String>,
error_description: Option<String>,
},
BulkComplete {
message_ids: Vec<MessageIdentifier>,
},
BulkDelete {
message_ids: Vec<MessageIdentifier>,
max_position: usize,
},
BulkAbandon {
message_ids: Vec<MessageIdentifier>,
},
BulkDeadLetter {
message_ids: Vec<MessageIdentifier>,
reason: Option<String>,
error_description: Option<String>,
},
BulkSend {
message_ids: Vec<MessageIdentifier>,
target_queue: String,
should_delete_source: bool,
repeat_count: usize,
max_position: usize,
},
BulkSendPeeked {
messages_data: Vec<(MessageIdentifier, Vec<u8>)>,
target_queue: String,
repeat_count: usize,
},
SendMessage {
queue_name: String,
message: MessageData,
},
SendMessages {
queue_name: String,
messages: Vec<MessageData>,
},
GetConnectionStatus,
GetQueueStats {
queue_name: String,
},
DisposeConsumer,
DisposeAllResources,
ResetConnection,
}Expand description
Commands for Service Bus operations using the command pattern.
This enum defines all possible operations that can be performed through the
[ServiceBusManager]. Each command encapsulates the parameters needed for
a specific operation, providing a clean separation between the command
definition and its execution.
§Command Categories
- Queue Management - Switch queues, get statistics, and manage connections
- Message Retrieval - Peek and receive messages from queues
- Individual Message Operations - Complete, abandon, or dead letter single messages
- Bulk Operations - Efficient bulk processing of multiple messages
- Send Operations - Send single or multiple messages to queues
- Status Operations - Check connection health and queue statistics
- Resource Management - Clean up consumers and reset connections
§Examples
use quetty_server::service_bus_manager::{ServiceBusCommand, QueueType};
// Switch to a queue
let command = ServiceBusCommand::SwitchQueue {
queue_name: "my-queue".to_string(),
queue_type: QueueType::Queue,
};
// Peek messages
let command = ServiceBusCommand::PeekMessages {
max_count: 10,
from_sequence: None,
};
// Send a message
let command = ServiceBusCommand::SendMessage {
queue_name: "target-queue".to_string(),
message: message_data,
};Variants§
SwitchQueue
Switch to a different queue for message operations.
Changes the active queue context for subsequent operations.
Fields
GetCurrentQueue
Get information about the currently active queue.
GetQueueStatistics
Retrieve detailed statistics for a specific queue.
Returns message counts, size information, and other queue metrics.
Fields
PeekMessages
Peek at messages without removing them from the queue.
Messages remain in the queue and can be retrieved again.
Fields
ReceiveMessages
Receive messages with a lock for processing.
Messages are locked during processing and must be completed or abandoned.
CompleteMessage
Complete (acknowledge) a message, removing it from the queue.
AbandonMessage
Abandon a message, returning it to the queue for redelivery.
DeadLetterMessage
Move a message to the dead letter queue.
Used for messages that cannot be processed successfully.
Fields
BulkComplete
Complete multiple messages in a single bulk operation.
Fields
message_ids: Vec<MessageIdentifier>List of message identifiers to complete
BulkDelete
Delete multiple messages efficiently using bulk processing.
Optimized for large-scale message deletion operations.
Fields
message_ids: Vec<MessageIdentifier>List of message identifiers to delete
BulkAbandon
Abandon multiple messages in a single bulk operation.
Fields
message_ids: Vec<MessageIdentifier>List of message identifiers to abandon
BulkDeadLetter
Move multiple messages to the dead letter queue.
Fields
message_ids: Vec<MessageIdentifier>List of message identifiers to dead letter
BulkSend
Send multiple messages to a target queue with optional source deletion.
Can optionally delete source messages after successful send.
Fields
message_ids: Vec<MessageIdentifier>List of message identifiers to send
BulkSendPeeked
Send pre-fetched message data to a target queue.
Used when message content has already been retrieved via peek operations.
Fields
messages_data: Vec<(MessageIdentifier, Vec<u8>)>Pre-fetched message data (identifier and content)
SendMessage
Send a single message to a specific queue.
SendMessages
Send multiple messages to a specific queue.
Fields
messages: Vec<MessageData>List of messages to send
GetConnectionStatus
Check the current connection status to Service Bus.
GetQueueStats
Get basic statistics for a specific queue.
DisposeConsumer
Dispose of the current message consumer.
Cleans up consumer resources and releases locks.
DisposeAllResources
Dispose of all Service Bus resources.
Comprehensive cleanup of all consumers, producers, and connections.
ResetConnection
Reset the Service Bus connection.
Re-establishes connection using current configuration.
Trait Implementations§
Source§impl Clone for ServiceBusCommand
impl Clone for ServiceBusCommand
Source§fn clone(&self) -> ServiceBusCommand
fn clone(&self) -> ServiceBusCommand
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more