Expand description
§apalis-amqp
Message queuing utilities for Rust using apalis and AMQP.
§Overview
apalis-amqp
is a Rust crate that provides utilities for integrating apalis
with AMQP message queuing systems.
It includes an AmqpBackend
implementation for use with the pushing and popping jobs, as well as a MessageQueue<J>
implementation for consuming messages from an AMQP queue and passing them to Worker
for processing.
§Features
- Integration between apalis and AMQP message queuing systems.
- Easy creation of AMQP-backed job queues.
- Simple consumption of AMQP messages as apalis jobs.
- Supports message acknowledgement and rejection via
tower
layers. - Supports all apalis middleware such as rate-limiting, timeouts, filtering, sentry, prometheus etc.
§Getting started
Add apalis-amqp to your Cargo.toml file:
[dependencies]
apalis = { version = "0.6.0-rc.5", features = ["tokio-comp"] }
apalis-amqp = "0.4"
serde = "1"
Then add to your main.rs
use apalis::prelude::*;
use apalis_amqp::AmqpBackend;
use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize)]
struct TestJob(usize);
async fn test_job(job: TestJob) {
dbg!(job);
}
#[tokio::main]
async fn main() {
let env = std::env::var("AMQP_ADDR").unwrap();
let mut mq = AmqpBackend::<TestJob>::new_from_addr(&env).await.unwrap();
mq.enqueue(TestJob(42)).await.unwrap();
Monitor::new()
.register(
WorkerBuilder::new("rango-amigo")
.backend(mq)
.build_fn(test_job),
)
.run()
.await
.unwrap();
}
Modules§
- Contains basic utilities for handling config and messages
Structs§
- A wrapper around a
lapin
AMQP channel that implements message queuing functionality.