1pub mod job;
3pub mod queue;
5pub mod worker;
7pub mod stats;
9
10pub use job::{Job, JobStatus, JobResult};
12pub use queue::{Queue, QueueBackend, MemoryBackend};
14pub mod redis;
16pub use crate::redis::RedisBackend;
18pub mod postgres;
20pub use crate::postgres::PostgresBackend;
22pub use worker::Worker;
24pub use stats::{QueueStats, StatsTracker};
26
27use thiserror::Error;
28
29#[derive(Error, Debug)]
31pub enum QueueError {
32 #[error("Serialization error: {0}")]
34 SerializationError(#[from] serde_json::Error),
35
36 #[error("Job failed: {0}")]
38 JobFailed(String),
39
40 #[error("Queue full")]
42 QueueFull,
43
44 #[error("Backend error: {0}")]
46 BackendError(String),
47}
48
49pub type Result<T> = std::result::Result<T, QueueError>;