1pub mod job;
2pub mod queue;
3pub mod worker;
4pub mod stats;
5
6pub use job::{Job, JobStatus, JobResult};
7pub use queue::{Queue, QueueBackend, MemoryBackend};
8pub mod redis;
9pub use crate::redis::RedisBackend;
10pub mod postgres;
11pub use crate::postgres::PostgresBackend;
12pub use worker::Worker;
13pub use stats::{QueueStats, StatsTracker};
14
15use thiserror::Error;
16
17#[derive(Error, Debug)]
18pub enum QueueError {
19 #[error("Serialization error: {0}")]
20 SerializationError(#[from] serde_json::Error),
21
22 #[error("Job failed: {0}")]
23 JobFailed(String),
24
25 #[error("Queue full")]
26 QueueFull,
27
28 #[error("Backend error: {0}")]
29 BackendError(String),
30}
31
32pub type Result<T> = std::result::Result<T, QueueError>;