Trait RsmqConnectionSync

Source
pub trait RsmqConnectionSync {
    // Required methods
    fn change_message_visibility(
        &mut self,
        qname: &str,
        message_id: &str,
        hidden: Duration,
    ) -> RsmqResult<()>;
    fn create_queue(
        &mut self,
        qname: &str,
        hidden: Option<Duration>,
        delay: Option<Duration>,
        maxsize: Option<i32>,
    ) -> RsmqResult<()>;
    fn delete_message(&mut self, qname: &str, id: &str) -> RsmqResult<bool>;
    fn delete_queue(&mut self, qname: &str) -> RsmqResult<()>;
    fn get_queue_attributes(
        &mut self,
        qname: &str,
    ) -> RsmqResult<RsmqQueueAttributes>;
    fn list_queues(&mut self) -> RsmqResult<Vec<String>>;
    fn pop_message<E: TryFrom<RedisBytes, Error = Vec<u8>>>(
        &mut self,
        qname: &str,
    ) -> RsmqResult<Option<RsmqMessage<E>>>;
    fn receive_message<E: TryFrom<RedisBytes, Error = Vec<u8>>>(
        &mut self,
        qname: &str,
        hidden: Option<Duration>,
    ) -> RsmqResult<Option<RsmqMessage<E>>>;
    fn send_message<E: Into<RedisBytes> + Send>(
        &mut self,
        qname: &str,
        message: E,
        delay: Option<Duration>,
    ) -> RsmqResult<String>;
    fn set_queue_attributes(
        &mut self,
        qname: &str,
        hidden: Option<Duration>,
        delay: Option<Duration>,
        maxsize: Option<i64>,
    ) -> RsmqResult<RsmqQueueAttributes>;
}

Required Methods§

Source

fn change_message_visibility( &mut self, qname: &str, message_id: &str, hidden: Duration, ) -> RsmqResult<()>

Change the hidden time of a already sent message.

§Arguments
  • qname - Name of the queue
  • message_id - ID of the message to modify
  • hidden - New hidden duration. Has a max time of 9_999_999 for compatibility reasons with the JS version
Source

fn create_queue( &mut self, qname: &str, hidden: Option<Duration>, delay: Option<Duration>, maxsize: Option<i32>, ) -> RsmqResult<()>

Creates a new queue. Attributes can be later modified with “set_queue_attributes” method

§Arguments
  • qname - Name of the queue to create
  • hidden - Time the messages will be hidden when received. Max 9_999_999
  • delay - Time messages will be delayed before delivery
  • maxsize - Maximum message size in bytes (1024-65536 or -1 for unlimited)
Source

fn delete_message(&mut self, qname: &str, id: &str) -> RsmqResult<bool>

Deletes a message from the queue.

Important to use when you are using receive_message.

§Arguments
  • qname - Name of the queue
  • id - ID of the message to delete
Source

fn delete_queue(&mut self, qname: &str) -> RsmqResult<()>

Deletes the queue and all messages in it

§Arguments
  • qname - Name of the queue to delete
Source

fn get_queue_attributes( &mut self, qname: &str, ) -> RsmqResult<RsmqQueueAttributes>

Returns the queue attributes and statistics

§Arguments
  • qname - Name of the queue
Source

fn list_queues(&mut self) -> RsmqResult<Vec<String>>

Returns a list of queues in the namespace

Source

fn pop_message<E: TryFrom<RedisBytes, Error = Vec<u8>>>( &mut self, qname: &str, ) -> RsmqResult<Option<RsmqMessage<E>>>

Deletes and returns a message. Be aware that using this you may end with deleted & unprocessed messages.

§Arguments
  • qname - Name of the queue
Source

fn receive_message<E: TryFrom<RedisBytes, Error = Vec<u8>>>( &mut self, qname: &str, hidden: Option<Duration>, ) -> RsmqResult<Option<RsmqMessage<E>>>

Returns a message. The message stays hidden for some time (defined by “hidden” argument or the queue settings). After that time, the message will be redelivered. To avoid redelivery, use “delete_message” after this function.

§Arguments
  • qname - Name of the queue
  • hidden - Optional custom hidden duration. Max 9_999_999
Source

fn send_message<E: Into<RedisBytes> + Send>( &mut self, qname: &str, message: E, delay: Option<Duration>, ) -> RsmqResult<String>

Sends a message to the queue. The message will be delayed some time (controlled by the “delayed” argument or the queue settings) before being delivered to a client.

§Arguments
  • qname - Name of the queue
  • message - Message content to send
  • delay - Optional custom delay duration
Source

fn set_queue_attributes( &mut self, qname: &str, hidden: Option<Duration>, delay: Option<Duration>, maxsize: Option<i64>, ) -> RsmqResult<RsmqQueueAttributes>

Modify the queue attributes. Note that “hidden” and “delay” can be overwritten when sending messages. “hidden” can be changed by the method “change_message_visibility”

§Arguments
  • qname - Name of the queue
  • hidden - Time messages will be hidden when received. Max 9_999_999
  • delay - Time messages will be delayed before delivery
  • maxsize - Maximum message size in bytes (1024-65536 or -1 for unlimited)

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§