pub struct Queue { /* private fields */ }Expand description
An in-memory background job queue.
Create via Queue::builder() or Queue::new().
Register handlers with register(), then push jobs
with push() or push_delayed().
The queue must be started with start() to spawn
background worker tasks that process jobs.
Implementations§
Source§impl Queue
impl Queue
Sourcepub fn builder() -> QueueBuilder
pub fn builder() -> QueueBuilder
Create a builder for customizing the queue.
Sourcepub async fn push(
&self,
name: impl Into<String>,
payload: &(impl Serialize + ?Sized),
) -> Result<u64, QueueError>
pub async fn push( &self, name: impl Into<String>, payload: &(impl Serialize + ?Sized), ) -> Result<u64, QueueError>
Push a job for immediate execution.
The payload is serialized to JSON. Returns the job ID.
Sourcepub async fn push_delayed(
&self,
name: impl Into<String>,
payload: &(impl Serialize + ?Sized),
delay: Duration,
) -> Result<u64, QueueError>
pub async fn push_delayed( &self, name: impl Into<String>, payload: &(impl Serialize + ?Sized), delay: Duration, ) -> Result<u64, QueueError>
Push a job for delayed execution.
The job will not be picked up by a worker until delay has elapsed.
Sourcepub fn start(&self)
Available on crate feature compio only.
pub fn start(&self)
compio only.Start background worker tasks (compio runtime).
Sourcepub async fn shutdown(&self, timeout: Duration)
pub async fn shutdown(&self, timeout: Duration)
Gracefully shut down the queue.
Stops accepting new jobs and waits for in-flight jobs to complete (up to the given timeout).
Sourcepub fn dead_letters(&self) -> Vec<DeadJob>
pub fn dead_letters(&self) -> Vec<DeadJob>
Returns a snapshot of jobs in the dead letter queue.
Sourcepub fn clear_dead_letters(&self)
pub fn clear_dead_letters(&self)
Clear all dead letters.
Sourcepub fn pending_count(&self) -> usize
pub fn pending_count(&self) -> usize
Returns the number of pending jobs.
Sourcepub fn inflight_count(&self) -> u64
pub fn inflight_count(&self) -> u64
Returns the number of currently in-flight jobs.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Queue
impl !RefUnwindSafe for Queue
impl Send for Queue
impl Sync for Queue
impl Unpin for Queue
impl UnsafeUnpin for Queue
impl !UnwindSafe for Queue
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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>
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>
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