Struct SimpleConsumer

Source
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 T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Any for T
where T: Any,

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where 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 T
where 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
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 T
where U: Into<T>,

Source§

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 T
where U: TryFrom<T>,

Source§

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.
Source§

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

Source§

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