pub struct LocalQueue { /* private fields */ }Expand description
Local disk-persisted queue implementation using sled embedded database.
This provides a persistent, thread-safe, disk-based message queue that implements all Queue trait features including send, receive with visibility timeout, and ack. Messages survive process restarts.
Implementations§
Source§impl LocalQueue
impl LocalQueue
Sourcepub async fn new(data_dir: PathBuf) -> Result<LocalQueue, AlienError<ErrorData>>
pub async fn new(data_dir: PathBuf) -> Result<LocalQueue, AlienError<ErrorData>>
Create a new local queue store with the given data directory.
Sourcepub async fn from_binding(
binding: LocalQueueBinding,
) -> Result<LocalQueue, AlienError<ErrorData>>
pub async fn from_binding( binding: LocalQueueBinding, ) -> Result<LocalQueue, AlienError<ErrorData>>
Create a LocalQueue from a LocalQueueBinding.
Trait Implementations§
Source§impl Debug for LocalQueue
impl Debug for LocalQueue
Source§impl Queue for LocalQueue
impl Queue for LocalQueue
Source§fn send<'life0, 'life1, 'async_trait>(
&'life0 self,
_queue: &'life1 str,
message: MessagePayload,
) -> Pin<Box<dyn Future<Output = Result<(), AlienError<ErrorData>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
LocalQueue: 'async_trait,
fn send<'life0, 'life1, 'async_trait>(
&'life0 self,
_queue: &'life1 str,
message: MessagePayload,
) -> Pin<Box<dyn Future<Output = Result<(), AlienError<ErrorData>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
LocalQueue: 'async_trait,
Send a message to the specified queue
Source§fn receive<'life0, 'life1, 'async_trait>(
&'life0 self,
_queue: &'life1 str,
max_messages: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<QueueMessage>, AlienError<ErrorData>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
LocalQueue: 'async_trait,
fn receive<'life0, 'life1, 'async_trait>(
&'life0 self,
_queue: &'life1 str,
max_messages: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<QueueMessage>, AlienError<ErrorData>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
LocalQueue: 'async_trait,
Receive up to
max_messages (1..=10) from the specified queueSource§fn ack<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_queue: &'life1 str,
receipt_handle: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<(), AlienError<ErrorData>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
LocalQueue: 'async_trait,
fn ack<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_queue: &'life1 str,
receipt_handle: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<(), AlienError<ErrorData>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
LocalQueue: 'async_trait,
Acknowledge a message using its receipt handle (idempotent)
impl Binding for LocalQueue
Auto Trait Implementations§
impl Freeze for LocalQueue
impl !RefUnwindSafe for LocalQueue
impl Send for LocalQueue
impl Sync for LocalQueue
impl Unpin for LocalQueue
impl UnsafeUnpin for LocalQueue
impl !UnwindSafe for LocalQueue
Blanket Implementations§
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestCreates a shared type from an unshared type.