Expand description
§Rullst Queue System (rullst::queue)
Provides a unified API for dispatching and processing background jobs.
§Drivers
- SQLite (
queue-sqlite, opt-in): Uses an auto-createdrullst_jobstable. - Redis (optional): Requires the
queue-redisfeature flag.
§Quick Start
use rullst_core::queue::{Queue, QueueError, Worker, WorkerHandle};
async fn configure_worker(queue: &Queue) -> Result<WorkerHandle, QueueError> {
queue
.dispatch("send_email", serde_json::json!({"to": "user@example.com"}))
.await?;
let mut worker = Worker::new(queue);
worker.register("send_email", |payload| async move {
println!("Sending email to: {}", payload["to"]);
Ok(())
});
worker.run()
}Re-exports§
pub use worker::JobHandler;pub use worker::Worker;pub use worker::WorkerHandle;
Modules§
- worker
- Background job worker executor. Bounded background queue worker and lifecycle handle.
Structs§
- Queue
- The main queue facade for dispatching background jobs.
- Queued
Job - A job that has been placed on the queue and is ready for processing.
- Queued
JobDetail - Detailed job information, used for dashboard monitoring
Enums§
- Queue
Error - Errors that can occur during queue operations.
Traits§
- Queue
Driver - Abstraction over queue storage backends.