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;