Expand description
§Reinhardt Background Tasks
Celery-inspired background task queue for Reinhardt framework.
§Features
- Async task execution
- Task scheduling (cron-like)
- Task retries with exponential backoff
- Task priority
- Task chaining
- Task dependencies and DAG execution
- Result backend
- Task execution metrics and monitoring
- Worker load balancing (Round-robin, Least-connections, Weighted, Random)
- Webhook notifications for task completion
§Example
// Example: Define a task
// struct SendEmailTask {
// to: String,
// subject: String,
// body: String,
// }
// #[async_trait]
// impl TaskExecutor for SendEmailTask {
// async fn execute(&self) -> TaskResult<()> {
// Send email
// Ok(())
// }
// }
// Queue the task
let queue = QueueImpl::new();
queue.enqueue(SendEmailTask {
to: "user@example.com".to_string(),
subject: "Hello".to_string(),
body: "Test email".to_string(),
}).await?;Re-exports§
pub use backend::DummyBackend;pub use backend::ImmediateBackend;pub use backend::ResultStatus;pub use backend::TaskBackend;pub use backend::TaskBackends;pub use backend::TaskExecutionError;pub use backend::TaskResultStatus;pub use chain::ChainStatus;pub use chain::TaskChain;pub use chain::TaskChainBuilder;pub use dag::TaskDAG;pub use dag::TaskNode;pub use dag::TaskNodeStatus;pub use load_balancer::LoadBalancer;pub use load_balancer::LoadBalancingStrategy;pub use load_balancer::WorkerId;pub use load_balancer::WorkerInfo;pub use load_balancer::WorkerMetrics;pub use locking::LockToken;pub use locking::MemoryTaskLock;pub use locking::TaskLock;pub use metrics::MetricsSnapshot;pub use metrics::TaskCounts;pub use metrics::TaskMetrics;pub use metrics::WorkerStats;pub use priority_queue::Priority;pub use priority_queue::PriorityTaskQueue;pub use queue::QueueConfig;pub use queue::TaskQueue;pub use registry::SerializedTask;pub use registry::TaskFactory;pub use registry::TaskRegistry;pub use result::MemoryResultBackend;pub use result::ResultBackend;pub use result::TaskOutput;pub use result::TaskResult as TaskResultBackend;pub use result::TaskResultMetadata;pub use retry::RetryState;pub use retry::RetryStrategy;pub use scheduler::CronSchedule;pub use scheduler::Schedule;pub use scheduler::Scheduler;pub use task::DEFAULT_TASK_QUEUE_NAME;pub use task::TASK_MAX_PRIORITY;pub use task::TASK_MIN_PRIORITY;pub use task::Task;pub use task::TaskExecutor;pub use task::TaskId;pub use task::TaskPriority;pub use task::TaskStatus;pub use webhook::HttpWebhookSender;pub use webhook::RetryConfig;pub use webhook::TaskStatus as WebhookTaskStatus;pub use webhook::WebhookConfig;pub use webhook::WebhookError;pub use webhook::WebhookEvent;pub use webhook::WebhookSender;pub use webhook::is_blocked_ip;pub use webhook::validate_resolved_ips;pub use webhook::validate_webhook_url;pub use worker::Worker;pub use worker::WorkerConfig;
Modules§
- backend
- Task backend trait and built-in implementations. Task backend implementations
- backends
- Feature-gated backend implementations (Redis, SQLite, SQS, RabbitMQ). Task backend implementations
- chain
- Task chaining for sequential execution pipelines. Task chaining
- dag
- Directed acyclic graph (DAG) based task dependencies. Task Dependency Graph (DAG)
- load_
balancer - Worker load balancing strategies. Worker load balancing
- locking
- Distributed task locking to prevent duplicate execution. Distributed task locking mechanism
- metrics
- Task execution metrics and monitoring. Task metrics and monitoring
- priority_
queue - Priority-based task queue. Priority task queue with weighted scheduling
- queue
- Core task queue with configuration. Task queue management
- registry
- Task registry for serialization and discovery. Task registry for dynamic task dispatch
- result
- Result backend for storing task outputs. Task result types and persistence
- retry
- Retry policies with exponential backoff. Task retry logic with exponential backoff
- scheduler
- Cron-like task scheduling. Task scheduling
- task
- Task trait and execution lifecycle. Task definitions and execution
- webhook
- Webhook notifications for task completion events. Webhook notifications for task completion events
- worker
- Task worker execution loop. Task worker
Enums§
- Task
Error - Task-related errors
Type Aliases§
- Task
Result - Result type for task operations