| Crates.io | armature-queue |
| lib.rs | armature-queue |
| version | 0.1.2 |
| created_at | 2025-12-27 01:03:51.863435+00 |
| updated_at | 2025-12-30 22:29:27.822239+00 |
| description | Job queue and background processing for Armature |
| homepage | https://pegasusheavy.github.io/armature |
| repository | https://github.com/pegasusheavy/armature |
| max_upload_size | |
| id | 2006523 |
| size | 121,986 |
Background job queue for the Armature framework.
[dependencies]
armature-queue = "0.1"
use armature_queue::{Queue, Job, Worker};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Create queue
let queue = Queue::new("redis://localhost:6379", "default").await?;
// Enqueue a job
queue.enqueue(
"send_email",
serde_json::json!({
"to": "user@example.com",
"subject": "Welcome!"
})
).await?;
// Process jobs
let worker = Worker::new(queue)
.register("send_email", |job| async move {
println!("Sending email: {:?}", job.data);
Ok(())
})
.concurrency(4);
worker.start().await?;
Ok(())
}
// Delayed execution
queue.enqueue_in(
Duration::from_secs(300),
"reminder",
serde_json::json!({"message": "Don't forget!"})
).await?;
// Scheduled time
queue.enqueue_at(
Utc::now() + Duration::hours(1),
"report",
serde_json::json!({})
).await?;
MIT OR Apache-2.0