pub struct QueueManager { /* private fields */ }Expand description
Queue Manager interface
Uses StreamableHTTP protocol for all operations.
Implementations§
Source§impl QueueManager
impl QueueManager
Sourcepub async fn create_queue(
&self,
queue_name: &str,
max_depth: Option<usize>,
ack_deadline_secs: Option<u64>,
) -> Result<()>
pub async fn create_queue( &self, queue_name: &str, max_depth: Option<usize>, ack_deadline_secs: Option<u64>, ) -> Result<()>
Create a new queue
§Arguments
queue_name- Name of the queuemax_depth- Maximum queue depth (optional)ack_deadline_secs- ACK deadline in seconds (optional)
Sourcepub async fn publish(
&self,
queue_name: &str,
payload: &[u8],
priority: Option<u8>,
max_retries: Option<u32>,
) -> Result<String>
pub async fn publish( &self, queue_name: &str, payload: &[u8], priority: Option<u8>, max_retries: Option<u32>, ) -> Result<String>
Publish a message to a queue
§Example
client.queue().publish("tasks", b"process-video", Some(9), None).await?;Sourcepub async fn consume(
&self,
queue_name: &str,
consumer_id: &str,
) -> Result<Option<Message>>
pub async fn consume( &self, queue_name: &str, consumer_id: &str, ) -> Result<Option<Message>>
Consume a message from a queue
Sourcepub async fn ack(&self, queue_name: &str, message_id: &str) -> Result<()>
pub async fn ack(&self, queue_name: &str, message_id: &str) -> Result<()>
Acknowledge a message
Sourcepub async fn nack(&self, queue_name: &str, message_id: &str) -> Result<()>
pub async fn nack(&self, queue_name: &str, message_id: &str) -> Result<()>
Negative acknowledge a message (requeue)
Sourcepub async fn stats(&self, queue_name: &str) -> Result<QueueStats>
pub async fn stats(&self, queue_name: &str) -> Result<QueueStats>
Get queue statistics
Sourcepub async fn delete_queue(&self, queue_name: &str) -> Result<()>
pub async fn delete_queue(&self, queue_name: &str) -> Result<()>
Delete a queue
Source§impl QueueManager
impl QueueManager
Sourcepub fn observe_messages(
&self,
queue_name: impl Into<String>,
consumer_id: impl Into<String>,
poll_interval: Duration,
) -> (impl Stream<Item = Message> + 'static, SubscriptionHandle)
pub fn observe_messages( &self, queue_name: impl Into<String>, consumer_id: impl Into<String>, poll_interval: Duration, ) -> (impl Stream<Item = Message> + 'static, SubscriptionHandle)
Observe messages from a queue reactively
Returns a Stream of messages that can be processed asynchronously. The stream will poll the queue at the specified interval.
§Arguments
queue_name- Name of the queueconsumer_id- Unique consumer identifierpoll_interval- How often to poll for new messages
§Example
use futures::StreamExt;
use synap_sdk::{SynapClient, SynapConfig};
use std::time::Duration;
let (mut stream, handle) = client.queue()
.observe_messages("tasks", "worker-1", Duration::from_millis(100));
// Process messages reactively
while let Some(message) = stream.next().await {
println!("Received: {:?}", message);
// ACK handled automatically
}
// Stop consuming
handle.unsubscribe();Sourcepub fn process_messages<F, Fut>(
&self,
queue_name: impl Into<String>,
consumer_id: impl Into<String>,
poll_interval: Duration,
handler: F,
) -> SubscriptionHandle
pub fn process_messages<F, Fut>( &self, queue_name: impl Into<String>, consumer_id: impl Into<String>, poll_interval: Duration, handler: F, ) -> SubscriptionHandle
Process messages from a queue with automatic ACK/NACK
Automatically acknowledges successfully processed messages and requeues failed ones.
§Example
use synap_sdk::{SynapClient, SynapConfig};
use std::time::Duration;
let handle = client.queue().process_messages(
"tasks",
"worker-1",
Duration::from_millis(100),
|message| async move {
// Process the message
println!("Processing: {:?}", message.id);
Ok(()) // Success = ACK, Err = NACK
}
);
// Stop processing
handle.unsubscribe();Trait Implementations§
Source§impl Clone for QueueManager
impl Clone for QueueManager
Source§fn clone(&self) -> QueueManager
fn clone(&self) -> QueueManager
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for QueueManager
impl !RefUnwindSafe for QueueManager
impl Send for QueueManager
impl Sync for QueueManager
impl Unpin for QueueManager
impl !UnwindSafe for QueueManager
Blanket Implementations§
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