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§
Sourcefn enqueue(&self, task: DocketTask) -> DocketResult<()>
fn enqueue(&self, task: DocketTask) -> DocketResult<()>
Enqueues a task for processing.
Sourcefn dequeue(&self, task_types: &[String]) -> DocketResult<Option<DocketTask>>
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.
Sourcefn ack(&self, task_id: &TaskId, result: Value) -> DocketResult<()>
fn ack(&self, task_id: &TaskId, result: Value) -> DocketResult<()>
Acknowledges successful task completion.
Sourcefn nack(&self, task_id: &TaskId, error: &str) -> DocketResult<()>
fn nack(&self, task_id: &TaskId, error: &str) -> DocketResult<()>
Negative acknowledgement - task failed, may be retried.
Sourcefn get_task(&self, task_id: &TaskId) -> DocketResult<Option<DocketTask>>
fn get_task(&self, task_id: &TaskId) -> DocketResult<Option<DocketTask>>
Gets task by ID.
Sourcefn list_tasks(
&self,
status: Option<TaskStatus>,
limit: usize,
) -> DocketResult<Vec<DocketTask>>
fn list_tasks( &self, status: Option<TaskStatus>, limit: usize, ) -> DocketResult<Vec<DocketTask>>
Lists tasks, optionally filtered by status.
Sourcefn stats(&self) -> DocketResult<QueueStats>
fn stats(&self) -> DocketResult<QueueStats>
Returns queue statistics.
Sourcefn requeue_stale(&self) -> DocketResult<usize>
fn requeue_stale(&self) -> DocketResult<usize>
Requeues tasks that have exceeded visibility timeout.