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