pub struct EmailQueueService<B: QueueBackend> { /* private fields */ }Expand description
Email queue service - high-level interface for queuing emails
Implementations§
Source§impl<B: QueueBackend> EmailQueueService<B>
impl<B: QueueBackend> EmailQueueService<B>
Sourcepub fn with_processor(self, processor: Arc<EmailJobProcessor>) -> Self
pub fn with_processor(self, processor: Arc<EmailJobProcessor>) -> Self
Set the email job processor
Sourcepub async fn enqueue(&self, email: Email) -> QueueResult<JobId>
pub async fn enqueue(&self, email: Email) -> QueueResult<JobId>
Queue an email for sending
Sourcepub async fn enqueue_with_priority(
&self,
email: Email,
priority: EmailPriority,
) -> QueueResult<JobId>
pub async fn enqueue_with_priority( &self, email: Email, priority: EmailPriority, ) -> QueueResult<JobId>
Queue an email with specific priority
Sourcepub async fn enqueue_scheduled(
&self,
email: Email,
send_at: DateTime<Utc>,
) -> QueueResult<JobId>
pub async fn enqueue_scheduled( &self, email: Email, send_at: DateTime<Utc>, ) -> QueueResult<JobId>
Queue an email for later sending
Sourcepub async fn enqueue_batch(&self, emails: Vec<Email>) -> QueueResult<Vec<JobId>>
pub async fn enqueue_batch(&self, emails: Vec<Email>) -> QueueResult<Vec<JobId>>
Queue a batch of emails
Sourcepub async fn get_jobs_by_state(
&self,
state: JobState,
limit: Option<usize>,
) -> QueueResult<Vec<JobEntry>>
pub async fn get_jobs_by_state( &self, state: JobState, limit: Option<usize>, ) -> QueueResult<Vec<JobEntry>>
Get jobs by state
Sourcepub async fn stats(&self) -> QueueResult<EmailQueueStats>
pub async fn stats(&self) -> QueueResult<EmailQueueStats>
Get queue statistics
Sourcepub async fn remove_job(&self, job_id: JobId) -> QueueResult<bool>
pub async fn remove_job(&self, job_id: JobId) -> QueueResult<bool>
Remove a job from the queue
Sourcepub async fn clear(&self) -> QueueResult<()>
pub async fn clear(&self) -> QueueResult<()>
Clear all jobs
Sourcepub async fn process_next_job(&self) -> QueueResult<bool>
pub async fn process_next_job(&self) -> QueueResult<bool>
Process jobs (typically called by workers)
Auto Trait Implementations§
impl<B> Freeze for EmailQueueService<B>where
B: Freeze,
impl<B> !RefUnwindSafe for EmailQueueService<B>
impl<B> Send for EmailQueueService<B>
impl<B> Sync for EmailQueueService<B>
impl<B> Unpin for EmailQueueService<B>where
B: Unpin,
impl<B> !UnwindSafe for EmailQueueService<B>
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