pub struct SimpleConsumer { /* private fields */ }
Expand description

SimpleConsumer is a lightweight consumer to consume messages from RocketMQ proxy.

If you want to fully control the message consumption operation by yourself, the simple consumer should be your first consideration.

SimpleConsumer is a thin wrapper of internal client struct that shoulders the actual workloads. Most of its methods take shared reference so that application developers may use it at will.

SimpleConsumer is Send and Sync by design, so that developers may get started easily.

Implementations§

source§

impl SimpleConsumer

source

pub fn new( option: SimpleConsumerOption, client_option: ClientOption ) -> Result<Self, ClientError>

Create a new simple consumer instance

source

pub async fn start(&mut self) -> Result<(), ClientError>

Start the simple consumer

source

pub async fn shutdown(self) -> Result<(), ClientError>

source

pub async fn receive( &self, topic: impl AsRef<str>, expression: &FilterExpression ) -> Result<Vec<MessageView>, ClientError>

receive messages from the specified topic

Arguments
  • topic - the topic for receiving messages
  • expression - the subscription for the topic
source

pub async fn receive_with( &self, topic: impl AsRef<str>, expression: &FilterExpression, batch_size: i32, invisible_duration: Duration ) -> Result<Vec<MessageView>, ClientError>

receive messages from the specified topic with batch size and invisible duration

Arguments
  • topic - the topic for receiving messages
  • expression - the subscription for the topic
  • batch_size - max message num of server returned
  • invisible_duration - set the invisible duration of messages that return from the server, these messages will not be visible to other consumers unless timeout
source

pub async fn ack( &self, ack_entry: &(impl AckMessageEntry + 'static) ) -> Result<(), ClientError>

Ack the specified message

It is important to acknowledge every consumed message, otherwise, they will be received again after the invisible duration

Arguments
  • ack_entry - special message view with handle want to ack

Trait Implementations§

source§

impl Debug for SimpleConsumer

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Any for Twhere T: Any,

§

fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>

§

fn into_any_rc(self: Rc<T, Global>) -> Rc<dyn Any, Global>

§

fn type_name(&self) -> &'static str

§

impl<T> AnySync for Twhere T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T, Global>) -> Arc<dyn Any + Sync + Send, Global>

source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoRequest<T> for T

source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more