Struct async_nats::jetstream::Message
source · [−]Fields
message: Messagecontext: ContextImplementations
sourceimpl Message
impl Message
sourcepub async fn ack(&self) -> Result<(), Error>
pub async fn ack(&self) -> Result<(), Error>
Acknowledges a message delivery by sending +ACK to the server.
If [AckPolicy] is set to All or Explicit, messages has to be acked.
Otherwise redeliveries will occur and [Consumer] will not be able to advance.
Examples
use futures::StreamExt;
let client = async_nats::connect("localhost:4222").await?;
let jetstream = async_nats::jetstream::new(client);
let consumer = jetstream
.get_stream("events").await?
.get_consumer("pull").await?;
let mut messages = consumer.fetch(100).await?;
while let Some(message) = messages.next().await {
message?.ack().await?;
}sourcepub async fn ack_with(&self, kind: AckKind) -> Result<(), Error>
pub async fn ack_with(&self, kind: AckKind) -> Result<(), Error>
Acknowledges a message delivery by sending a choosen AckKind variant to the server.
Examples
use futures::StreamExt;
use async_nats::jetstream::AckKind;
let client = async_nats::connect("localhost:4222").await?;
let jetstream = async_nats::jetstream::new(client);
let consumer = jetstream
.get_stream("events").await?
.get_consumer("pull").await?;
let mut messages = consumer.fetch(100).await?;
while let Some(message) = messages.next().await {
message?.ack_with(AckKind::Nak).await?;
}sourcepub async fn double_ack(&self) -> Result<(), Error>
pub async fn double_ack(&self) -> Result<(), Error>
Acknowledges a message delivery by sending +ACK to the server
and awaits for confirmation for the server that it received the message.
Useful if user wants to ensure exactly once semantics.
If [AckPolicy] is set to All or Explicit, messages has to be acked.
Otherwise redeliveries will occur and [Consumer] will not be able to advance.
Examples
use futures::StreamExt;
let client = async_nats::connect("localhost:4222").await?;
let jetstream = async_nats::jetstream::new(client);
let consumer = jetstream
.get_stream("events").await?
.get_consumer("pull").await?;
let mut messages = consumer.fetch(100).await?;
while let Some(message) = messages.next().await {
message?.double_ack().await?;
}Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for Message
impl Send for Message
impl Sync for Message
impl Unpin for Message
impl !UnwindSafe for Message
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more