Skip to main content

Module queue

Module queue 

Source
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-created rullst_jobs table.
  • Redis (optional): Requires the queue-redis feature 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.
QueuedJob
A job that has been placed on the queue and is ready for processing.
QueuedJobDetail
Detailed job information, used for dashboard monitoring

Enums§

QueueError
Errors that can occur during queue operations.

Traits§

QueueDriver
Abstraction over queue storage backends.