apalis_redis/lib.rs
1#![warn(
2 missing_debug_implementations,
3 missing_docs,
4 rust_2018_idioms,
5 unreachable_pub
6)]
7#![cfg_attr(docsrs, feature(doc_cfg))]
8//! apalis storage using Redis as a backend
9//! ```rust,no_run
10//! use apalis::prelude::*;
11//! use apalis_redis::{RedisStorage, Config};
12//! use serde::{Deserialize, Serialize};
13//!
14//! #[derive(Debug, Deserialize, Serialize)]
15//! struct Email {
16//! to: String,
17//! }
18//!
19//! async fn send_email(job: Email) -> Result<(), Error> {
20//! Ok(())
21//! }
22//!
23//! #[tokio::main]
24//! async fn main() {
25//! let redis_url = std::env::var("REDIS_URL").expect("Missing env variable REDIS_URL");
26//! let conn = apalis_redis::connect(redis_url).await.expect("Could not connect");
27//! let storage = RedisStorage::new(conn);
28//! let worker = WorkerBuilder::new("tasty-pear")
29//! .backend(storage.clone())
30//! .build_fn(send_email);
31//!
32//! worker.run().await;
33//! }
34//! ```
35
36mod expose;
37mod storage;
38pub use redis::{aio::ConnectionManager, RedisError};
39pub use storage::connect;
40pub use storage::Config;
41pub use storage::RedisContext;
42pub use storage::RedisPollError;
43pub use storage::RedisQueueInfo;
44pub use storage::RedisStorage;