Skip to main content

celers_broker_sql/
lib.rs

1//! MySQL broker implementation for CeleRS
2//!
3//! This broker uses MySQL with `FOR UPDATE SKIP LOCKED` for reliable,
4//! distributed task queue processing. It supports:
5//! - Priority queues
6//! - Dead Letter Queue (DLQ) for permanently failed tasks
7//! - Delayed task execution (enqueue_at, enqueue_after)
8//! - Prometheus metrics (optional `metrics` feature)
9//! - Batch enqueue/dequeue/ack operations
10//! - Transaction safety
11//! - Distributed workers without contention
12//! - Queue pause/resume functionality
13//! - DLQ inspection and requeue
14//! - Task status inspection
15//! - Database health checks
16//! - Automatic task archiving
17
18// Core type definitions
19pub mod types;
20pub use types::*;
21
22// Circuit breaker and idempotency types
23pub mod circuit_breaker;
24pub use circuit_breaker::*;
25
26// Workflow, hooks, and builder types
27pub mod workflow;
28pub use workflow::*;
29
30// Distributed tracing context
31pub mod tracing;
32pub use tracing::*;
33
34// Statistics and diagnostics types
35pub mod stats_types;
36pub use stats_types::*;
37
38// MysqlBroker struct and core implementation
39pub mod broker_core;
40pub use broker_core::MysqlBroker;
41
42// Distributed tracing and lifecycle hooks
43mod broker_hooks;
44
45// Enhanced broker operations
46mod broker_enhanced;
47
48// Broker trait implementation
49mod broker_trait;
50
51// Task chain and batch reject operations
52mod broker_chain;
53
54// Advanced operations (metrics, retention, rate limiting)
55mod broker_advanced;
56
57// Resilience features (retry policies, recurring tasks, circuit breaker, idempotency)
58mod broker_resilience;
59
60// Batch operations, worker management, and task groups
61pub mod broker_batch;
62pub use broker_batch::*;
63
64// Diagnostics, profiling, and statistics
65mod broker_diagnostics;
66
67// Monitoring utilities
68pub mod monitoring;
69pub mod utilities;
70
71// Tests
72#[cfg(test)]
73mod tests;