pub struct NatsSessionProvider { /* private fields */ }Expand description
Session provider for NATS using a per-session JetStream pull consumer.
Messages for the session are filtered by a dedicated subject
({prefix}.{queue}.session.{session_id}), ensuring ordered, exclusive delivery
within the session.
Trait Implementations§
Source§impl SessionProvider for NatsSessionProvider
impl SessionProvider for NatsSessionProvider
Source§fn receive_message<'life0, 'async_trait>(
&'life0 self,
timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<Option<ReceivedMessage>, QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn receive_message<'life0, 'async_trait>(
&'life0 self,
timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<Option<ReceivedMessage>, QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Receive message from session
Source§fn complete_message<'life0, 'life1, 'async_trait>(
&'life0 self,
receipt: &'life1 ReceiptHandle,
) -> Pin<Box<dyn Future<Output = Result<(), QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn complete_message<'life0, 'life1, 'async_trait>(
&'life0 self,
receipt: &'life1 ReceiptHandle,
) -> Pin<Box<dyn Future<Output = Result<(), QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Complete message
Source§fn abandon_message<'life0, 'life1, 'async_trait>(
&'life0 self,
receipt: &'life1 ReceiptHandle,
) -> Pin<Box<dyn Future<Output = Result<(), QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn abandon_message<'life0, 'life1, 'async_trait>(
&'life0 self,
receipt: &'life1 ReceiptHandle,
) -> Pin<Box<dyn Future<Output = Result<(), QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Abandon message
Source§fn dead_letter_message<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
receipt: &'life1 ReceiptHandle,
reason: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<(), QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn dead_letter_message<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
receipt: &'life1 ReceiptHandle,
reason: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<(), QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Send to dead letter queue
Source§fn renew_session_lock<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn renew_session_lock<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Renew session lock
Source§fn close_session<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn close_session<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Close session
Source§fn session_id(&self) -> &SessionId
fn session_id(&self) -> &SessionId
Get session ID
Source§fn session_expires_at(&self) -> Timestamp
fn session_expires_at(&self) -> Timestamp
Get session expiry time
Auto Trait Implementations§
impl Freeze for NatsSessionProvider
impl !RefUnwindSafe for NatsSessionProvider
impl Send for NatsSessionProvider
impl Sync for NatsSessionProvider
impl Unpin for NatsSessionProvider
impl UnsafeUnpin for NatsSessionProvider
impl !UnwindSafe for NatsSessionProvider
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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