Skip to main content

Crate rediq

Crate rediq 

Source
Expand description

§Rediq

Rediq is a distributed task queue framework based on Rust and Redis.

§Features

  • Task creation, enqueue, delayed execution
  • Multi-queue support, priority queues
  • Automatic retry mechanism, dead letter queue
  • Middleware system
  • Prometheus monitoring

§Quick Start

use rediq::client::Client;
use rediq::processor::{Handler, Mux};
use rediq::server::{Server, ServerBuilder};
use rediq::task::TaskBuilder;
use async_trait::async_trait;
use std::time::Duration;

// Client side: create and enqueue tasks
let client = Client::builder()
    .redis_url("redis://localhost:6379")
    .build()
    .await?;

let task = TaskBuilder::new("email:send")
    .queue("default")
    .payload(&email_data)?
    .max_retry(5)
    .build()?;

client.enqueue(task).await?;

// Server side: process tasks
let state = ServerBuilder::new()
    .redis_url("redis://localhost:6379")
    .queues(&["default"])
    .build()
    .await?;

let server = Server::from(state);
let mut mux = Mux::new();
mux.handle("email:send", EmailHandler);
server.run(mux).await?;

Re-exports§

pub use error::Error;
pub use error::Result;
pub use task::Task;
pub use progress::TaskProgress;
pub use progress::ProgressContext;
pub use progress::ProgressConfig;

Modules§

aggregator
Task aggregation module
client
Client SDK
config
Rediq global configuration module
error
Error type definitions
middleware
Middleware module
observability
Observability module
processor
Processor module
progress
Task execution progress tracking module
server
Server module
storage
Storage layer
task
Task type definitions