Skip to main content

DocketBackend

Trait DocketBackend 

Source
pub trait DocketBackend: Send + Sync {
    // Required methods
    fn enqueue(&self, task: DocketTask) -> DocketResult<()>;
    fn dequeue(&self, task_types: &[String]) -> DocketResult<Option<DocketTask>>;
    fn ack(&self, task_id: &TaskId, result: Value) -> DocketResult<()>;
    fn nack(&self, task_id: &TaskId, error: &str) -> DocketResult<()>;
    fn get_task(&self, task_id: &TaskId) -> DocketResult<Option<DocketTask>>;
    fn list_tasks(
        &self,
        status: Option<TaskStatus>,
        limit: usize,
    ) -> DocketResult<Vec<DocketTask>>;
    fn cancel(&self, task_id: &TaskId, reason: Option<&str>) -> DocketResult<()>;
    fn stats(&self) -> DocketResult<QueueStats>;
    fn requeue_stale(&self) -> DocketResult<usize>;
}
Expand description

Backend trait for Docket storage.

Implementations provide the actual storage and retrieval of tasks. The trait uses synchronous methods but backends can internally use async operations wrapped in blocking.

Required Methods§

Source

fn enqueue(&self, task: DocketTask) -> DocketResult<()>

Enqueues a task for processing.

Source

fn dequeue(&self, task_types: &[String]) -> DocketResult<Option<DocketTask>>

Dequeues a task for the given task types.

Returns the highest priority task that matches one of the subscribed types. The task is marked as claimed but not removed from the queue until acknowledged.

Source

fn ack(&self, task_id: &TaskId, result: Value) -> DocketResult<()>

Acknowledges successful task completion.

Source

fn nack(&self, task_id: &TaskId, error: &str) -> DocketResult<()>

Negative acknowledgement - task failed, may be retried.

Source

fn get_task(&self, task_id: &TaskId) -> DocketResult<Option<DocketTask>>

Gets task by ID.

Source

fn list_tasks( &self, status: Option<TaskStatus>, limit: usize, ) -> DocketResult<Vec<DocketTask>>

Lists tasks, optionally filtered by status.

Source

fn cancel(&self, task_id: &TaskId, reason: Option<&str>) -> DocketResult<()>

Cancels a task.

Source

fn stats(&self) -> DocketResult<QueueStats>

Returns queue statistics.

Source

fn requeue_stale(&self) -> DocketResult<usize>

Requeues tasks that have exceeded visibility timeout.

Implementors§