Skip to main content

wfe_core/traits/
queue.rs

1use async_trait::async_trait;
2
3use crate::models::QueueType;
4
5/// Queue provider for distributing workflow execution across workers.
6#[async_trait]
7pub trait QueueProvider: Send + Sync {
8    async fn queue_work(&self, id: &str, queue: QueueType) -> crate::Result<()>;
9    async fn dequeue_work(&self, queue: QueueType) -> crate::Result<Option<String>>;
10    fn is_dequeue_blocking(&self) -> bool;
11    async fn start(&self) -> crate::Result<()>;
12    async fn stop(&self) -> crate::Result<()>;
13}