From afdbaf777081d8cbdf0aada8c584b48ed2aca2fc Mon Sep 17 00:00:00 2001 From: Danil Akhtarov Date: Thu, 13 Feb 2025 01:05:30 +0400 Subject: [PATCH 1/3] refactor --- Cargo.toml | 15 +--- LICENSE | 2 +- Makefile | 4 - README.md | 16 ---- diagram.d2 | 48 ----------- diagram.png | Bin 479543 -> 0 bytes docs/introduction.md | 2 +- examples/memory.rs | 33 -------- examples/redis.rs | 5 +- examples/redis_json.rs | 48 ----------- examples/redis_json_autodelete.rs | 44 ---------- src/backend.rs | 32 -------- src/backends/memory.rs | 132 ------------------------------ src/backends/mod.rs | 1 - src/backends/redis.rs | 87 +++----------------- src/backends/redis_json.rs | 48 +---------- src/committer.rs | 35 -------- src/consumer.rs | 41 ---------- src/lib.rs | 4 - src/prelude.rs | 5 -- src/producer.rs | 39 --------- src/utils.rs | 45 +--------- tests/main.rs | 69 ---------------- 23 files changed, 20 insertions(+), 735 deletions(-) delete mode 100644 diagram.d2 delete mode 100644 diagram.png delete mode 100644 examples/memory.rs delete mode 100644 examples/redis_json.rs delete mode 100644 examples/redis_json_autodelete.rs delete mode 100644 src/backend.rs delete mode 100644 src/backends/memory.rs delete mode 100644 src/committer.rs delete mode 100644 src/consumer.rs delete mode 100644 src/producer.rs diff --git a/Cargo.toml b/Cargo.toml index ac14f5e..985b382 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,30 +22,17 @@ json = ["dep:serde", "dep:serde_json"] tokio = ["dep:tokio"] [dependencies] -async-trait = "0.1" redis = { version = "0.28", features=["connection-manager", "tokio-comp"], optional = true } serde = { version = "1.0", features = ["serde_derive"], optional = true } serde_json = { version = "1.0", optional = true } tokio = { version = "1.43", features = ["time"], optional = true } [dev-dependencies] -tokio = { version = "1.43", features = ["time", "macros", "rt-multi-thread"]} redis = { version = "0.28", features=["connection-manager", "tokio-comp"] } serde = { version = "1.0", features = ["serde_derive"] } serde_json = { version = "1.0" } - -[[example]] -name = "memory" -required-features = ["tokio"] +tokio = { version = "1.43", features = ["time", "macros", "rt-multi-thread"]} [[example]] name = "redis" required-features = ["redis", "tokio"] - -[[example]] -name = "redis_json" -required-features = ["redis", "json", "tokio"] - -[[example]] -name = "redis_json_autodelete" -required-features = ["redis", "json", "tokio"] diff --git a/LICENSE b/LICENSE index 9db0d11..e0a25cf 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2022 Danil Akhtarov +Copyright (c) 2025 Danil Akhtarov Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated diff --git a/Makefile b/Makefile index be30857..51ba39a 100644 --- a/Makefile +++ b/Makefile @@ -19,7 +19,3 @@ fmt: .PHONY: docs docs: mdbook build - -.PHONY: d2 -d2: - d2 diagram.d2 diagram.png diff --git a/README.md b/README.md index c4f6cc0..dbc2948 100644 --- a/README.md +++ b/README.md @@ -7,24 +7,8 @@ The library allows for creating scheduled tasks via Redis for Rust. -```rust -producer.schedule(&"Hello!".to_string(), &(now() + 30000.)).await; - -loop { - let tasks = consumer.poll(&now()).await.unwrap(); - - for task in tasks { - println!("Consumed {:?}", task); - } -} -``` - -That means the Consumed will be printed in 30 seconds. - You can customize a format of an event for redis. Write your wrapper over [RedisBackend](src/backends/redis.rs). See [redis_json backend](src/backends/redis_json.rs). -![diagram](diagram.png) - ## Features - [x] Send/receive tasks in Redis diff --git a/diagram.d2 b/diagram.d2 deleted file mode 100644 index 8a72d8d..0000000 --- a/diagram.d2 +++ /dev/null @@ -1,48 +0,0 @@ -Scheduled Queue: { - Consumers: { - app: "" { - shape: image - icon: https://cdn4.iconfinder.com/data/icons/logos-brands-5/24/rust-1024.png - } - c1: consumer 1 - c2: consumer 2 - c3: consumer 3 - c: ... - } - - Producers: { - app: "" { - shape: image - icon: https://cdn4.iconfinder.com/data/icons/logos-brands-5/24/rust-1024.png - } - p1: producer 1 - p2: producer 2 - } - - Redis: { - shape: image - icon: https://cdn4.iconfinder.com/data/icons/redis-2/1451/Untitled-2-1024.png - } - - Producers.p1 -> Redis: task 1, task 2, task 3 - Producers.p2 -> Redis: task 4, task 5 - Redis -> Consumers.c1: "[task 1, task 2, task 3]" - Redis -> Consumers.c2: "[task 4]" - Redis -> Consumers.c3: "[task 5]" - Redis -> Consumers.c: "..." -} - -Interface: { - grid-columns: 1 - Producer: { - shape: class - - schedule(task String, score f64) - } - - Consumers: { - shape: class - - poll(score f64): Vec - } -} diff --git a/diagram.png b/diagram.png deleted file mode 100644 index b5c83e56aa3f4cbc1a25cfbcf3de469c8b533a7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 479543 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 XgHza=NfZ5$=d<^$ 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

!0vzTV~SJn@}}(cZ*+vNp~;lUWPZ=sOQP%w$Z! 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

REk++xrD0zFGqQ%kO@F4rSya^BFsO?AA5)}h2 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 z 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%0A{+Q0D%KgDpNmq5>H!XSpDw9H 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::new(RedisBackend::new( - redis::Client::open("redis://127.0.0.1/").unwrap(), - queue_key, - 10, - true, - )); - let producer = Producer::new(backend.clone()); - let consumer = Consumer::new(backend.clone()); - - if !backend.is_redis_version_ok().await.unwrap() { - return; - } - - producer - .schedule( - &Data { - id: 1, - name: "Task".to_string(), - }, - &(now() + 1000.), - ) - .await - .unwrap(); - - poll_tasks(100, consumer, |tasks| async { - for task in tasks.unwrap() { - tokio::task::spawn(async move { - println!("Consumed {:?}", task.unwrap()); - }); - } - true - }) - .await; -} diff --git a/examples/redis_json_autodelete.rs b/examples/redis_json_autodelete.rs deleted file mode 100644 index 55e64e6..0000000 --- a/examples/redis_json_autodelete.rs +++ /dev/null @@ -1,44 +0,0 @@ -extern crate redis; -use serde::{Deserialize, Serialize}; - -use taskline::prelude::*; - -#[derive(Deserialize, Serialize, Debug, Clone)] -struct Data { - id: u64, - name: String, -} - -#[tokio::main] -async fn main() { - let backend = JsonRedisBackend::::new(RedisBackend::new( - redis::Client::open("redis://127.0.0.1/").unwrap(), - String::from("taskline"), - 10, - false, - )); - let producer = Producer::new(backend.clone()); - let consumer = Consumer::new(backend.clone()); - let committer = Committer::new(backend.clone()); - - producer - .schedule( - &Data { - id: 1, - name: "Task".to_string(), - }, - &(now() + 1000.), - ) - .await - .unwrap(); - - poll_tasks(100, consumer, |tasks| async { - for task in tasks.unwrap() { - let task = task.unwrap(); - println!("Consumed {:?}", task); - committer.commit(&task).await.unwrap(); - } - true - }) - .await; -} diff --git a/src/backend.rs b/src/backend.rs deleted file mode 100644 index cb7cc0c..0000000 --- a/src/backend.rs +++ /dev/null @@ -1,32 +0,0 @@ -//! Backend traits for queue. -//! You can implement your own backend by implementing this traits. -use async_trait::async_trait; - -/// The trait for backend implementations which can be used to dequeue tasks. -/// -/// R - type of task. -/// S - type of score used to sort tasks in queue. -/// E - type of error. -#[async_trait] -pub trait DequeuBackend { - async fn dequeue(&self, score: &S) -> Result, E>; -} - -/// The trait for backend implementations which can be used to enqueue tasks. -/// -/// R - type of task. -/// S - type of score used to sort tasks in queue. -/// E - type of error. -#[async_trait] -pub trait EnqueuBackend { - async fn enqueue(&self, task: &R, score: &S) -> Result<(), E>; -} - -/// The trait for backend implementations which can be used to commit tasks. -/// -/// R - type of task. -/// E - type of error. -#[async_trait] -pub trait CommitBackend { - async fn commit(&self, task: &R) -> Result<(), E>; -} diff --git a/src/backends/memory.rs b/src/backends/memory.rs deleted file mode 100644 index 6168c22..0000000 --- a/src/backends/memory.rs +++ /dev/null @@ -1,132 +0,0 @@ -use std::cell::RefCell; -use std::sync::{Arc, Mutex}; - -use async_trait::async_trait; - -use crate::backend::{CommitBackend, DequeuBackend, EnqueuBackend}; - -type Queue = Vec>; - -#[derive(Clone)] -struct Item -where - T: Clone + PartialEq, - S: Copy + PartialOrd, -{ - score: S, - val: T, -} - -/// Memory backend. O(n). This backend is not recommended for production use. -/// -/// New in version 0.8.0. -#[derive(Clone, Default)] -pub struct MemoryBackend -where - T: Clone + PartialEq, - S: Copy + PartialOrd, -{ - queue: Arc>>>, -} - -impl MemoryBackend -where - T: Clone + PartialEq, - S: Copy + PartialOrd, -{ - pub fn new() -> MemoryBackend { - MemoryBackend { - queue: Arc::new(Mutex::new(RefCell::new(Vec::new()))), - } - } - - pub fn with_capacity(capacity: usize) -> MemoryBackend { - MemoryBackend { - queue: Arc::new(Mutex::new(RefCell::new(Vec::with_capacity(capacity)))), - } - } - - pub fn read(&self, score: &S) -> Vec { - self.queue - .lock() - .unwrap() - .borrow() - .iter() - .filter(|v| v.score <= *score) - .map(|v| v.val.clone()) - .collect::>() - } - - pub fn write(&self, task: &T, score: &S) { - let queue = self.queue.lock().unwrap(); - let mut queue = queue.borrow_mut(); - queue.retain(|v| v.val != *task); - queue.push(Item { - score: *score, - val: task.clone(), - }); - } - - pub fn delete(&self, task: &T) { - self.queue - .lock() - .unwrap() - .borrow_mut() - .retain(|v| v.val != *task); - } -} - -#[async_trait] -impl DequeuBackend for MemoryBackend -where - T: Clone + PartialEq + Send, - S: Copy + PartialOrd + Sync + Send, -{ - async fn dequeue(&self, score: &S) -> Result, ()> { - Ok(self.read(score)) - } -} - -#[async_trait] -impl EnqueuBackend for MemoryBackend -where - T: Clone + PartialEq + Sync + Send, - S: Copy + PartialOrd + Sync + Send, -{ - async fn enqueue(&self, task: &T, score: &S) -> Result<(), ()> { - self.write(task, score); - Ok(()) - } -} - -#[async_trait] -impl CommitBackend for MemoryBackend -where - T: Clone + PartialEq + Sync + Send, - S: Copy + PartialOrd + Sync + Send, -{ - async fn commit(&self, task: &T) -> Result<(), ()> { - self.delete(task); - Ok(()) - } -} - -#[cfg(test)] -mod tests { - use super::*; - - #[tokio::test] - async fn test_consumer() { - let backend = MemoryBackend::new(); - - backend.enqueue(&"task".to_string(), &1.).await.unwrap(); - backend.enqueue(&"task".to_string(), &1.).await.unwrap(); - - let tasks = backend.dequeue(&1.).await.unwrap(); - for task in tasks { - assert_eq!(task, "task".to_string()); - backend.commit(&task).await.unwrap(); - } - assert!(backend.queue.lock().unwrap().borrow().is_empty()); - } -} diff --git a/src/backends/mod.rs b/src/backends/mod.rs index e047070..13e94df 100644 --- a/src/backends/mod.rs +++ b/src/backends/mod.rs @@ -1,7 +1,6 @@ //! Backends which can be used to store data. //! The backends must implement `DequeuBackend` and `EnqueuBackend` traits. //! They can be used in Consumer and Producer. -pub mod memory; #[cfg(feature = "redis")] pub mod redis; #[cfg(all(feature = "redis", feature = "json"))] diff --git a/src/backends/redis.rs b/src/backends/redis.rs index df93ca3..068cdf0 100644 --- a/src/backends/redis.rs +++ b/src/backends/redis.rs @@ -1,29 +1,21 @@ -extern crate redis; -use async_trait::async_trait; use redis::{AsyncCommands, RedisError}; -use std::ops; - -use crate::backend::{CommitBackend, DequeuBackend, EnqueuBackend}; /// Configuration for Redis backend. /// You can use it to create `RedisBackend` instance. -pub struct RedisBackendConfig { +#[derive(Debug, Clone)] +pub struct RedisBackendConfig { /// Redis key is used to store tasks. - pub queue_key: S, + pub queue_key: String, /// Number of tasks to read in one batch. pub read_batch_size: usize, /// If `true`, tasks will be deleted from queue after reading. /// If autodelete is `false`, tasks should be deleted explicitly from queue after reading with `RedisBackend::delete`. - /// - /// New in version 0.5.0. pub autodelete: bool, } -impl RedisBackendConfig { +impl RedisBackendConfig { /// Create `RedisBackend` instance. /// It requires `redis::Client` instance. - /// - /// New in version 0.5.0. pub fn with_client(self, client: redis::Client) -> RedisBackend { RedisBackend::new( client, @@ -34,21 +26,10 @@ impl RedisBackendConfig { } } -impl ops::Add for RedisBackendConfig { - type Output = RedisBackend; - - /// Create `RedisBackend` instance. - /// It requires `redis::Client` instance. - /// Alias for `RedisBackendConfig::with_client`. - fn add(self, client: redis::Client) -> RedisBackend { - self.with_client(client) - } -} - /// Redis backend. /// It implements both `DequeuBackend` and `EnqueuBackend` traits. /// You can use score to sort tasks in queue. Usually it is unix timestamp. -#[derive(Clone)] +#[derive(Debug, Clone)] pub struct RedisBackend { client: redis::Client, queue_key: String, @@ -98,23 +79,16 @@ impl RedisBackend { /// If there are no tasks in queue it returns empty vector. /// If there are no tasks with score less than `score`, returns empty vector. pub async fn read(&self, score: &f64) -> Result, RedisError> { - let mut con = match self.client.get_multiplexed_async_connection().await { - Ok(con) => con, - Err(e) => return Err(e), - }; + let mut con = self.client.get_multiplexed_async_connection().await?; - let result: Vec = match self + let result: Vec = self .pop_schedule_script .key(self.queue_key.as_str()) .arg(score) .arg(self.read_batch_size) .arg(self.autodelete as u8) .invoke_async(&mut con) - .await - { - Ok(result) => result, - Err(e) => return Err(e), - }; + .await?; Ok(result) } @@ -122,32 +96,22 @@ impl RedisBackend { /// Adds a task to redis. /// It uses score to sort tasks in queue. Usually it is unix timestamp. pub async fn write(&self, task: &String, score: &f64) -> Result<(), RedisError> { - let mut con = match self.client.get_multiplexed_async_connection().await { - Ok(con) => con, - Err(e) => return Err(e), - }; + let mut con = self.client.get_multiplexed_async_connection().await?; con.zadd(self.queue_key.as_str(), task, score).await } /// Delete a task from queue. - /// - /// New in version 0.5.0. pub async fn delete(&self, task: &String) -> Result<(), RedisError> { if self.autodelete { return Ok(()); } - let mut con = match self.client.get_multiplexed_async_connection().await { - Ok(con) => con, - Err(e) => return Err(e), - }; + let mut con = self.client.get_multiplexed_async_connection().await?; con.zrem(self.queue_key.as_str(), task).await } /// Check redis version. - /// - /// New in version 0.6.0. - pub async fn is_redis_version_ok(&self) -> Result { + pub async fn check_version(&self) -> Result { let mut con = self.client.get_multiplexed_async_connection().await?; let res: String = redis::cmd("INFO").query_async(&mut con).await?; let mut ver = res @@ -165,32 +129,3 @@ impl RedisBackend { Ok((major, minor) >= (6, 2)) } } - -#[async_trait] -impl CommitBackend for RedisBackend { - /// Delete a task from queue. - /// - /// New in version 0.5.1. - async fn commit(&self, task: &String) -> Result<(), RedisError> { - self.delete(task).await - } -} - -#[async_trait] -impl DequeuBackend for RedisBackend { - /// Calls lua script to pop tasks from redis. - /// If there are no tasks in queue it returns empty vector. - /// If there are no tasks with score less than `score`, returns empty vector. - async fn dequeue(&self, score: &f64) -> Result, RedisError> { - self.read(score).await - } -} - -#[async_trait] -impl EnqueuBackend for RedisBackend { - /// Adds a task to redis. - /// It uses score to sort tasks in queue. Usually it is unix timestamp. - async fn enqueue(&self, task: &String, score: &f64) -> Result<(), RedisError> { - self.write(task, score).await - } -} diff --git a/src/backends/redis_json.rs b/src/backends/redis_json.rs index d738d18..7ad066b 100644 --- a/src/backends/redis_json.rs +++ b/src/backends/redis_json.rs @@ -1,8 +1,5 @@ -extern crate redis; -use async_trait::async_trait; use serde::{de::DeserializeOwned, Serialize}; -use crate::backend::{CommitBackend, DequeuBackend, EnqueuBackend}; use crate::backends::redis::RedisBackend; /// Error type for `JsonRedisBackend`. @@ -33,10 +30,8 @@ impl JsonRedisBackend { } /// Check redis version. - /// - /// New in version 0.6.0. - pub async fn is_redis_version_ok(&self) -> Result { - self.backend.is_redis_version_ok().await + pub async fn check_version(&self) -> Result { + self.backend.check_version().await } } @@ -57,8 +52,6 @@ where } /// Delete task from queue. - /// - /// New in version 0.5.0. pub async fn delete(&self, data: &T) -> Result<(), JsonRedisError> { if self.backend.autodelete { return Ok(()); @@ -67,7 +60,7 @@ where Ok(data) => data, Err(e) => return Err(JsonRedisError::Serde(e)), }; - match self.backend.commit(&data).await { + match self.backend.delete(&data).await { Ok(_) => Ok(()), Err(e) => Err(JsonRedisError::Redis(e)), } @@ -84,38 +77,3 @@ where Ok(data.into_iter().map(|d| serde_json::from_str(&d)).collect()) } } - -#[async_trait] -impl CommitBackend for JsonRedisBackend -where - T: Serialize + Send + Sync, -{ - /// Delete task from queue. - /// - /// New in version 0.5.1. - async fn commit(&self, data: &T) -> Result<(), JsonRedisError> { - self.delete(data).await - } -} - -#[async_trait] -impl EnqueuBackend for JsonRedisBackend -where - T: Serialize + Send + Sync, -{ - /// Serializes data to JSON and calls `RedisBackend::write`. - async fn enqueue(&self, data: &T, score: &f64) -> Result<(), JsonRedisError> { - self.write(data, score).await - } -} - -#[async_trait] -impl DequeuBackend, f64, redis::RedisError> for JsonRedisBackend -where - T: DeserializeOwned + Send + Sync, -{ - /// Returns `Vec>` because it is possible that some tasks will be corrupted. - async fn dequeue(&self, score: &f64) -> Result>, redis::RedisError> { - self.read(score).await - } -} diff --git a/src/committer.rs b/src/committer.rs deleted file mode 100644 index dc81dfa..0000000 --- a/src/committer.rs +++ /dev/null @@ -1,35 +0,0 @@ -//! Committer of tasks. -//! Main struct for committing tasks from queue. -use std::marker::PhantomData; - -use crate::backend::CommitBackend; - -/// Abstract committer of tasks. -/// It is generic over the backend used to commit tasks. -/// R, S, E - types of request, score and error. -pub struct Committer -where - T: CommitBackend, -{ - backend: T, - _phantom_request: PhantomData, - _phantom_error: PhantomData, -} - -impl Committer -where - T: CommitBackend, -{ - /// Creates new committer. - pub fn new(backend: T) -> Committer { - Committer { - backend, - _phantom_request: PhantomData, - _phantom_error: PhantomData, - } - } - - pub async fn commit(&self, task: &R) -> Result<(), E> { - self.backend.commit(task).await - } -} diff --git a/src/consumer.rs b/src/consumer.rs deleted file mode 100644 index bb62dc8..0000000 --- a/src/consumer.rs +++ /dev/null @@ -1,41 +0,0 @@ -//! Consumer of tasks. -//! Main struct for consuming tasks from queue. -use std::marker::PhantomData; - -use crate::backend::DequeuBackend; - -/// Abstract consumer of tasks. -/// It is generic over the backend used to dequeue tasks. -/// R, S, E - types of request, score and error. -pub struct Consumer -where - T: DequeuBackend, -{ - backend: T, - _phantom_request: PhantomData, - _phantom_score: PhantomData, - _phantom_error: PhantomData, -} - -impl Consumer -where - T: DequeuBackend, -{ - /// Creates new consumer. - pub fn new(backend: T) -> Consumer { - Consumer { - backend, - _phantom_request: PhantomData, - _phantom_score: PhantomData, - _phantom_error: PhantomData, - } - } - - /// Polls tasks from queue. - /// Returns vector of tasks. - /// If there are no tasks in queue, returns empty vector. - /// If there are no tasks with score less than `score`, returns empty vector. - pub async fn poll(&self, score: &S) -> Result, E> { - self.backend.dequeue(score).await - } -} diff --git a/src/lib.rs b/src/lib.rs index 996319b..a76d710 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,9 +1,5 @@ //! The library allows to create scheduled tasks via Redis for Rust. -pub mod backend; pub mod backends; -pub mod committer; -pub mod consumer; pub mod prelude; -pub mod producer; #[cfg(feature = "tokio")] pub mod utils; diff --git a/src/prelude.rs b/src/prelude.rs index 5432b20..f37cdca 100644 --- a/src/prelude.rs +++ b/src/prelude.rs @@ -1,12 +1,7 @@ //! Types and traits that are commonly used in the library. -pub use crate::backend::*; -pub use crate::backends::memory::MemoryBackend; #[cfg(feature = "redis")] pub use crate::backends::redis::{RedisBackend, RedisBackendConfig}; #[cfg(all(feature = "redis", feature = "json"))] pub use crate::backends::redis_json::{JsonRedisBackend, JsonRedisError}; -pub use crate::committer::*; -pub use crate::consumer::*; -pub use crate::producer::*; #[cfg(feature = "tokio")] pub use crate::utils::*; diff --git a/src/producer.rs b/src/producer.rs deleted file mode 100644 index 27d9704..0000000 --- a/src/producer.rs +++ /dev/null @@ -1,39 +0,0 @@ -//! Producer of tasks. -//! Main struct for producing tasks to queue. -use std::marker::PhantomData; - -use crate::backend::EnqueuBackend; - -/// Abstract producer of tasks. -/// It is generic over the backend used to enqueue tasks. -/// R, S, E - types of request, score and error. -pub struct Producer -where - T: EnqueuBackend, -{ - backend: T, - _phantom_request: PhantomData, - _phantom_score: PhantomData, - _phantom_error: PhantomData, -} - -impl Producer -where - T: EnqueuBackend, -{ - /// Creates new producer. - pub fn new(backend: T) -> Producer { - Producer { - backend, - _phantom_request: PhantomData, - _phantom_score: PhantomData, - _phantom_error: PhantomData, - } - } - - /// Schedules a task to queue. - /// Returns `Ok(())` if task was successfully scheduled. - pub async fn schedule(&self, task: &R, score: &S) -> Result<(), E> { - self.backend.enqueue(task, score).await - } -} diff --git a/src/utils.rs b/src/utils.rs index 3054310..e155653 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -1,11 +1,4 @@ -use std::{ - fmt, - future::Future, - time::{SystemTime, UNIX_EPOCH}, -}; -use tokio::time::{sleep, Duration}; - -use crate::prelude::{Consumer, DequeuBackend}; +use std::time::{SystemTime, UNIX_EPOCH}; /// Returns current time. pub fn now() -> f64 { @@ -14,39 +7,3 @@ pub fn now() -> f64 { .unwrap() .as_millis() as f64 } - -/// Polls tasks from a backend and calls the function in the loop. -pub async fn poll_tasks( - interval: u64, - consumer: Consumer, - callback: impl Fn(Result, E>) -> Fut, -) where - T: DequeuBackend, - Fut: Future, - E: fmt::Debug, -{ - loop { - let score = now(); - match consumer.poll(&score).await { - Ok(tasks) => { - if tasks.is_empty() { - if interval != 0 { - sleep(Duration::from_millis(interval)).await; - } - continue; - } - if !callback(Ok(tasks)).await { - break; - } - } - Err(err) => { - if !callback(Err(err)).await { - break; - } - if interval != 0 { - sleep(Duration::from_millis(interval)).await; - } - } - } - } -} diff --git a/tests/main.rs b/tests/main.rs index b39b6e8..8b13789 100644 --- a/tests/main.rs +++ b/tests/main.rs @@ -1,70 +1 @@ -use taskline::committer::Committer; -use taskline::consumer::Consumer; -use taskline::producer::Producer; -mod backend { - use std::cell::RefCell; - use std::sync::{Arc, Mutex}; - use std::vec; - - use async_trait::async_trait; - - use taskline::prelude::{CommitBackend, DequeuBackend, EnqueuBackend}; - - #[derive(Clone)] - pub(crate) struct MemBackend { - pub queue: Arc>>>, - } - - impl MemBackend { - pub(crate) fn new() -> MemBackend { - MemBackend { - queue: Arc::new(Mutex::new(RefCell::new(Vec::new()))), - } - } - } - - #[async_trait] - impl DequeuBackend for MemBackend { - async fn dequeue(&self, _score: &()) -> Result, ()> { - Ok(vec![*self.queue.lock().unwrap().borrow().first().unwrap()]) - } - } - - #[async_trait] - impl EnqueuBackend for MemBackend { - async fn enqueue(&self, task: &i32, _score: &()) -> Result<(), ()> { - self.queue.lock().unwrap().borrow_mut().push(*task); - Ok(()) - } - } - - #[async_trait] - impl CommitBackend for MemBackend { - async fn commit(&self, task: &i32) -> Result<(), ()> { - self.queue - .lock() - .unwrap() - .borrow_mut() - .retain(|x| *x != *task); - Ok(()) - } - } -} - -#[tokio::test] -async fn test_consumer() { - let backend = backend::MemBackend::new(); - let client = Producer::new(backend.clone()); - let consumer = Consumer::new(backend.clone()); - let committer = Committer::new(backend.clone()); - - client.schedule(&1, &()).await.unwrap(); - - let tasks = consumer.poll(&()).await.unwrap(); - for task in tasks { - assert_eq!(task, 1); - committer.commit(&task).await.unwrap(); - } - assert!(backend.queue.lock().unwrap().borrow().is_empty()); -} From af2d908ab7a8613a9e67ce4ea531ceed2a0eee31 Mon Sep 17 00:00:00 2001 From: Danil Akhtarov Date: Thu, 13 Feb 2025 21:51:54 +0400 Subject: [PATCH 2/3] refactor: remove docs --- .github/workflows/book.yml | 29 ------------------------ Makefile => Justfile | 12 +--------- README.md | 42 +++++++++++++++++++++++++++++++++++ book.toml | 10 --------- docs/SUMMARY.md | 14 ------------ docs/additional-resources.md | 14 ------------ docs/changelog.md | 1 - docs/code-of-conduct.md | 1 - docs/contributing.md | 1 - docs/introduction.md | 18 --------------- docs/quick-start.md | 33 --------------------------- docs/user-guide/README.md | 3 --- docs/user-guide/autodelete.md | 20 ----------------- docs/user-guide/format.md | 16 ------------- 14 files changed, 43 insertions(+), 171 deletions(-) delete mode 100644 .github/workflows/book.yml rename Makefile => Justfile (53%) delete mode 100644 book.toml delete mode 100644 docs/SUMMARY.md delete mode 100644 docs/additional-resources.md delete mode 100644 docs/changelog.md delete mode 100644 docs/code-of-conduct.md delete mode 100644 docs/contributing.md delete mode 100644 docs/introduction.md delete mode 100644 docs/quick-start.md delete mode 100644 docs/user-guide/README.md delete mode 100644 docs/user-guide/autodelete.md delete mode 100644 docs/user-guide/format.md diff --git a/.github/workflows/book.yml b/.github/workflows/book.yml deleted file mode 100644 index 62c73c2..0000000 --- a/.github/workflows/book.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: Github Pages - -on: - push: - branches: - - main - workflow_dispatch: - -jobs: - publish: - name: Publish Book - runs-on: ubuntu-latest - steps: - - name: Checkout sources - uses: actions/checkout@v4 - - - name: Install mdBook - run: | - wget 'https://github.com/rust-lang/mdBook/releases/download/v0.4.42/mdbook-v0.4.42-x86_64-unknown-linux-gnu.tar.gz' --output-document 'mdbook.tar.gz' - tar -zxvf mdbook.tar.gz - - - name: Build Book - run: ./mdbook build - - - name: Deploy pages - uses: peaceiris/actions-gh-pages@v3 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: ./book diff --git a/Makefile b/Justfile similarity index 53% rename from Makefile rename to Justfile index 51ba39a..18f1485 100644 --- a/Makefile +++ b/Justfile @@ -1,21 +1,11 @@ -DEFAULT_GOAL := all +all: fmt check test -.PHONY: all -all: fmt check test docs - -.PHONY: check check: cargo fmt --all -- --check cargo clippy --all-features --all-targets -- -D warnings -.PHONY: test test: cargo test --all-features -.PHONY: fmt fmt: cargo fmt --all - -.PHONY: docs -docs: - mdbook build diff --git a/README.md b/README.md index dbc2948..2c536d1 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,22 @@ The library allows for creating scheduled tasks via Redis for Rust. You can customize a format of an event for redis. Write your wrapper over [RedisBackend](src/backends/redis.rs). See [redis_json backend](src/backends/redis_json.rs). +## How does it work? + +Taskline revolves around the concept of a task. A task is a unit of work that is requested by a producer to be completed by a consumer / worker. + +A producer can schedule a task to be completed at a specific time in the future. A consumer can then fetch the task and complete it. + +There are backends for consumers and producers, which must implement the `DequeuBackend` and `EnqueuBackend` traits. Right now, there is only one backend, which is Redis. + +## When should I use Taskline? + +Taskline is a good fit for applications that need to schedule work to be done in the future. For example, Taskline is a good fit for: + +- Scheduling emails to be sent in the future +- Scheduling a notification to be sent to a user in the future + + ## Features - [x] Send/receive tasks in Redis @@ -30,6 +46,32 @@ You can customize a format of an event for redis. Write your wrapper over [Redis cargo add taskline ``` +# Autodelete + +## Deleting from a storage after handling + +If you want to delete a task from storage after handling, you can use `RedisJsonBackend` or `RedisBackend` with `autodelete=false` parameter. It's safe to use it only with one consumer. If you have more than one consumer, you can use distributed lock by redis. It's also named as [redlock](https://redis.com/glossary/redlock/). See [Distributed Locks with Redis](https://redis.io/docs/manual/patterns/distributed-locks/). + +Don't forget to delete a task explicitly from storage after handling. See `Committer::commit`. + +It's experimental implementation. In the future, it will be implemented more comfortable way. + +## Recommendation + +I recommend to use `autodelete=True`, if it fits to you. This way is simple to understanding and it do not require extra configurations. +But you need to know that your tasks will not be handling again if your application has an error. + +# Formats of tasks + +## A format of a task for sending and receiving via Redis + +Actually, Taskline uses a format of a backend. You can use any format which you want. + +There are two formats of a task for sending and receiving via Redis which are implemented in the library: + +- JSON +- String + ## License * [MIT LICENSE](LICENSE) diff --git a/book.toml b/book.toml deleted file mode 100644 index c9338f0..0000000 --- a/book.toml +++ /dev/null @@ -1,10 +0,0 @@ -[book] -authors = ["Danil Akhtarov"] -language = "en" -multilingual = false -src = "docs" -title = "Taskline" - -[output.html] -no-section-label = true -git-repository-url = "https://github.com/daxartio/taskline" diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md deleted file mode 100644 index ac2c97b..0000000 --- a/docs/SUMMARY.md +++ /dev/null @@ -1,14 +0,0 @@ -# Summary - -- [Introduction](./introduction.md) -- [Quick Start](./quick-start.md) -- [User Guide](./user-guide/README.md) - - [Formats](./user-guide/format.md) - - [Autodelete](./user-guide/autodelete.md) -- [Contributing](./contributing.md) -- [Changelog](./changelog.md) -- [Code Of Conduct](./code-of-conduct.md) - ---- - -[Additional Resources](additional-resources.md) diff --git a/docs/additional-resources.md b/docs/additional-resources.md deleted file mode 100644 index bb9d77e..0000000 --- a/docs/additional-resources.md +++ /dev/null @@ -1,14 +0,0 @@ -# Additional Resources - -## Quick links - -- [Source code](https://github.com/daxartio/taskline) -- [API documentation](https://docs.rs/taskline) -- [Crate](https://crates.io/crates/taskline) -- [License](https://github.com/daxartio/taskline/blob/main/LICENSE) -- [Contribution guide](https://github.com/daxartio/taskline/blob/main/CONTRIBUTING.md) -- [Changelog](https://github.com/daxartio/taskline/blob/main/CHANGELOG.md) - -## Alternatives - -- [Rusty Celery](https://rusty-celery.github.io/) diff --git a/docs/changelog.md b/docs/changelog.md deleted file mode 100644 index bdde652..0000000 --- a/docs/changelog.md +++ /dev/null @@ -1 +0,0 @@ -{{#include ../CHANGELOG.md}} diff --git a/docs/code-of-conduct.md b/docs/code-of-conduct.md deleted file mode 100644 index 613e855..0000000 --- a/docs/code-of-conduct.md +++ /dev/null @@ -1 +0,0 @@ -{{#include ../CODE_OF_CONDUCT.md}} diff --git a/docs/contributing.md b/docs/contributing.md deleted file mode 100644 index 81ddb50..0000000 --- a/docs/contributing.md +++ /dev/null @@ -1 +0,0 @@ -{{#include ../CONTRIBUTING.md}} diff --git a/docs/introduction.md b/docs/introduction.md deleted file mode 100644 index af2c26a..0000000 --- a/docs/introduction.md +++ /dev/null @@ -1,18 +0,0 @@ -# Introduction - -The library allows to create scheduled tasks via Redis for Rust. - -## How does it work? - -Taskline revolves around the concept of a task. A task is a unit of work that is requested by a producer to be completed by a consumer / worker. - -A producer can schedule a task to be completed at a specific time in the future. A consumer can then fetch the task and complete it. - -There are backends for consumers and producers, which must implement the `DequeuBackend` and `EnqueuBackend` traits. Right now, there is only one backend, which is Redis. - -## When should I use Taskline? - -Taskline is a good fit for applications that need to schedule work to be done in the future. For example, Taskline is a good fit for: - -- Scheduling emails to be sent in the future -- Scheduling a notification to be sent to a user in the future diff --git a/docs/quick-start.md b/docs/quick-start.md deleted file mode 100644 index 8589858..0000000 --- a/docs/quick-start.md +++ /dev/null @@ -1,33 +0,0 @@ -# Quick Start - -Taskline is provided as the a library on [crates.io](https://crates.io/crates/taskline). To get started, add taskline as a dependency to your project. - -``` -cargo add taskline -``` - -## Example - -The library provides an asynchronous code for interacting with Redis. You can use `tokio` or `async-std` as the runtime. - -First of all, you need to create a `RedisBackend` instance. You can do this by using the `RedisBackend::new` method or `RedisBackendConfig` struct. - -After that, you need to create a consumer and a producer. These are simple structs for more comfortable interaction with the library. You can create them using the `Consumer::new` and `Producer::new` methods. - -You can look at the example below. - -```rust,no_run,noplayground -{{#include ../examples/redis.rs}} -``` - -More examples can be found [here](https://github.com/daxartio/taskline/tree/main/examples). - -## Run the example - -```bash -git clone git@github.com:daxartio/taskline.git -# git clone https://github.com/daxartio/taskline.git -cd taskline -docker-compose up -d -cargo run --example redis -``` diff --git a/docs/user-guide/README.md b/docs/user-guide/README.md deleted file mode 100644 index 4af8e5e..0000000 --- a/docs/user-guide/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# User Guide - -That you need to know. diff --git a/docs/user-guide/autodelete.md b/docs/user-guide/autodelete.md deleted file mode 100644 index b7c6aa2..0000000 --- a/docs/user-guide/autodelete.md +++ /dev/null @@ -1,20 +0,0 @@ -# Autodelete - -## Deleting from a storage after handling - -If you want to delete a task from storage after handling, you can use `RedisJsonBackend` or `RedisBackend` with `autodelete=false` parameter. It's safe to use it only with one consumer. If you have more than one consumer, you can use distributed lock by redis. It's also named as [redlock](https://redis.com/glossary/redlock/). See [Distributed Locks with Redis](https://redis.io/docs/manual/patterns/distributed-locks/). - -Don't forget to delete a task explicitly from storage after handling. See `Committer::commit`. - -It's experimental implementation. In the future, it will be implemented more comfortable way. - -## Recommendation - -I recommend to use `autodelete=True`, if it fits to you. This way is simple to understanding and it do not require extra configurations. -But you need to know that your tasks will not be handling again if your application has an error. - -## Example - -```rust,no_run,noplayground -{{#include ../../examples/redis_json_autodelete.rs}} -``` diff --git a/docs/user-guide/format.md b/docs/user-guide/format.md deleted file mode 100644 index dcb1fe3..0000000 --- a/docs/user-guide/format.md +++ /dev/null @@ -1,16 +0,0 @@ -# Formats of tasks - -## A format of a task for sending and receiving via Redis - -Actually, Taskline uses a format of a backend. You can use any format which you want. - -There are two formats of a task for sending and receiving via Redis which are implemented in the library: - -- JSON -- String - -## Example - -```rust,no_run,noplayground -{{#include ../../examples/redis_json.rs}} -``` From e17bcbd1272c553ca690a3891bff320d0afeca2e Mon Sep 17 00:00:00 2001 From: Danil Akhtarov Date: Thu, 13 Feb 2025 23:29:05 +0400 Subject: [PATCH 3/3] refactor: udpate --- Cargo.toml | 14 +--- README.md | 49 +++++--------- examples/autodelete.rs | 70 ++++++++++++++++++++ examples/json.rs | 62 ++++++++++++++++++ examples/redis.rs | 44 ------------- examples/simple.rs | 50 ++++++++++++++ src/backends/mod.rs | 7 -- src/backends/redis.rs | 131 ------------------------------------- src/backends/redis_json.rs | 79 ---------------------- src/lib.rs | 4 +- src/prelude.rs | 8 +-- src/taskline.rs | 129 ++++++++++++++++++++++++++++++++++++ src/utils.rs | 9 --- 13 files changed, 331 insertions(+), 325 deletions(-) create mode 100644 examples/autodelete.rs create mode 100644 examples/json.rs delete mode 100644 examples/redis.rs create mode 100644 examples/simple.rs delete mode 100644 src/backends/mod.rs delete mode 100644 src/backends/redis.rs delete mode 100644 src/backends/redis_json.rs create mode 100644 src/taskline.rs delete mode 100644 src/utils.rs diff --git a/Cargo.toml b/Cargo.toml index 985b382..e12e8d6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,22 +17,12 @@ all-features = true [features] default = [] -redis = ["dep:redis"] -json = ["dep:serde", "dep:serde_json"] -tokio = ["dep:tokio"] [dependencies] -redis = { version = "0.28", features=["connection-manager", "tokio-comp"], optional = true } -serde = { version = "1.0", features = ["serde_derive"], optional = true } -serde_json = { version = "1.0", optional = true } -tokio = { version = "1.43", features = ["time"], optional = true } +redis = { version = "0.28", features=["connection-manager", "tokio-comp"]} [dev-dependencies] -redis = { version = "0.28", features=["connection-manager", "tokio-comp"] } serde = { version = "1.0", features = ["serde_derive"] } serde_json = { version = "1.0" } tokio = { version = "1.43", features = ["time", "macros", "rt-multi-thread"]} - -[[example]] -name = "redis" -required-features = ["redis", "tokio"] +tokio-util = { version = "0.7.13", features = ["full"] } diff --git a/README.md b/README.md index 2c536d1..f3515c3 100644 --- a/README.md +++ b/README.md @@ -5,31 +5,24 @@ [![Docs.rs](https://docs.rs/taskline/badge.svg)](https://docs.rs/taskline) -The library allows for creating scheduled tasks via Redis for Rust. +Taskline is a Rust library for scheduling tasks via Redis. -You can customize a format of an event for redis. Write your wrapper over [RedisBackend](src/backends/redis.rs). See [redis_json backend](src/backends/redis_json.rs). +## Overview -## How does it work? +Taskline provides a simple way to schedule and process tasks asynchronously. It follows a producer-consumer model, where a producer schedules tasks to be executed at a specific time, and a consumer retrieves and processes them. -Taskline revolves around the concept of a task. A task is a unit of work that is requested by a producer to be completed by a consumer / worker. +## Use Cases -A producer can schedule a task to be completed at a specific time in the future. A consumer can then fetch the task and complete it. - -There are backends for consumers and producers, which must implement the `DequeuBackend` and `EnqueuBackend` traits. Right now, there is only one backend, which is Redis. - -## When should I use Taskline? - -Taskline is a good fit for applications that need to schedule work to be done in the future. For example, Taskline is a good fit for: - -- Scheduling emails to be sent in the future -- Scheduling a notification to be sent to a user in the future +Taskline is ideal for applications that require deferred execution, such as: +- Scheduling emails to be sent at a later time. +- Sending notifications to users at a specific moment. +- Any background job that needs time-based execution. ## Features - [x] Send/receive tasks in Redis - [x] Delayed tasks -- [x] Support json - [x] Deleting from a storage after handling - [ ] Support Redis Cluster - [ ] Metrics @@ -46,31 +39,21 @@ Taskline is a good fit for applications that need to schedule work to be done in cargo add taskline ``` -# Autodelete - -## Deleting from a storage after handling - -If you want to delete a task from storage after handling, you can use `RedisJsonBackend` or `RedisBackend` with `autodelete=false` parameter. It's safe to use it only with one consumer. If you have more than one consumer, you can use distributed lock by redis. It's also named as [redlock](https://redis.com/glossary/redlock/). See [Distributed Locks with Redis](https://redis.io/docs/manual/patterns/distributed-locks/). - -Don't forget to delete a task explicitly from storage after handling. See `Committer::commit`. - -It's experimental implementation. In the future, it will be implemented more comfortable way. +## Task Auto-Deletion -## Recommendation +### Default Behavior -I recommend to use `autodelete=True`, if it fits to you. This way is simple to understanding and it do not require extra configurations. -But you need to know that your tasks will not be handling again if your application has an error. +By default, Taskline automatically deletes tasks from storage after they are processed. This is the recommended approach for most use cases, as it ensures tasks are not executed multiple read. -# Formats of tasks +### Disabling Auto-Deletion -## A format of a task for sending and receiving via Redis +If you prefer to manually manage task deletion, you can disable auto-delete by setting `autodelete=false`. However, this should only be used with a single consumer to avoid duplicate processing. If multiple consumers are involved, consider using a distributed lock mechanism like [redlock](https://redis.com/glossary/redlock/). For more details, see [Distributed Locks with Redis](https://redis.io/docs/manual/patterns/distributed-locks/). -Actually, Taskline uses a format of a backend. You can use any format which you want. +To manually remove a processed task, use: `Taskline::delete`. -There are two formats of a task for sending and receiving via Redis which are implemented in the library: +### Recommendation -- JSON -- String +If your use case allows, it is recommended to keep `autodelete=true`, as it simplifies task management and reduces configuration overhead. However, be aware that in the event of an application crash, tasks may be lost before they are processed. ## License diff --git a/examples/autodelete.rs b/examples/autodelete.rs new file mode 100644 index 0000000..c7701d5 --- /dev/null +++ b/examples/autodelete.rs @@ -0,0 +1,70 @@ +use std::{ + sync::Arc, + time::{SystemTime, UNIX_EPOCH}, +}; + +use tokio::time::{sleep, Duration}; +use tokio_util::task::TaskTracker; + +use taskline::prelude::*; + +fn now() -> f64 { + SystemTime::now() + .duration_since(UNIX_EPOCH) + .unwrap() + .as_millis() as f64 +} + +#[tokio::main] +async fn main() { + let client = + redis::Client::open("redis://127.0.0.1/").expect("the redis client should be created"); + + let queue = Arc::new(Taskline::new( + TasklineConfig::<&str>::new() + .queue_key("taskline-queue-autodelete") + .autodelete(false) + .build(), + client, + )); + + queue + .write("Hello!".to_string(), now() + 3000.) + .await + .unwrap(); + + queue + .write("Hello again!".to_string(), now() + 5000.) + .await + .unwrap(); + + println!("the message 'Hello!' will be read in 3s and 5s"); + + loop { + let tasks: Vec = queue + .read(now()) + .await + .expect("reading from redis should be ok"); + + if tasks.is_empty() { + sleep(Duration::from_millis(500)).await; + continue; + } + + let tracker = TaskTracker::new(); + for task in tasks { + let queue = Arc::clone(&queue); + tracker.spawn(async move { + println!("Consumed '{}'", task); + + queue + .delete(&task) + .await + .expect("the message should be deleted"); + println!("'{}' deleted", task); + }); + } + tracker.close(); + tracker.wait().await; + } +} diff --git a/examples/json.rs b/examples/json.rs new file mode 100644 index 0000000..726a128 --- /dev/null +++ b/examples/json.rs @@ -0,0 +1,62 @@ +use std::time::{SystemTime, UNIX_EPOCH}; + +use serde::{Deserialize, Serialize}; +use tokio::time::{sleep, Duration}; + +use taskline::prelude::*; + +fn now() -> f64 { + SystemTime::now() + .duration_since(UNIX_EPOCH) + .unwrap() + .as_millis() as f64 +} + +#[derive(Deserialize, Serialize, Debug, Clone)] +struct Data { + id: u64, + name: String, +} + +#[tokio::main] +async fn main() { + let client = + redis::Client::open("redis://127.0.0.1/").expect("the redis client should be created"); + + let queue = Taskline::new(TasklineConfig::::new().queue_key(123).build(), client); + + queue + .write( + serde_json::to_string(&Data { + id: 1, + name: "Task".to_string(), + }) + .ok(), + now() + 3000., + ) + .await + .unwrap(); + + println!("the data '1:Task!' will be read in 3s"); + + loop { + let tasks: Vec = queue + .read(now()) + .await + .expect("reading from redis should be ok"); + + if tasks.is_empty() { + sleep(Duration::from_millis(500)).await; + continue; + } + + for task in tasks { + tokio::task::spawn(async move { + println!( + "Consumed '{:?}'", + serde_json::from_str::(&task).expect("the message should be parsed") + ); + }); + } + } +} diff --git a/examples/redis.rs b/examples/redis.rs deleted file mode 100644 index 46de0b1..0000000 --- a/examples/redis.rs +++ /dev/null @@ -1,44 +0,0 @@ -use tokio::time::{sleep, Duration}; - -use taskline::prelude::*; - -#[tokio::main] -async fn main() { - let queue = RedisBackendConfig { - queue_key: "taskline".to_string(), - read_batch_size: 10, - autodelete: true, - } - .with_client(redis::Client::open("redis://127.0.0.1/").unwrap()); - - if !queue.check_version().await.unwrap() { - return; - } - - queue - .write(&"Hello!".to_string(), &(now() + 1000.)) - .await - .unwrap(); - - loop { - let tasks = queue.read(&now()).await; - match tasks { - Ok(tasks) => { - if tasks.is_empty() { - sleep(Duration::from_millis(100)).await; - continue; - } - for task in tasks { - tokio::task::spawn(async move { - println!("Consumed '{}'", task); - }); - } - } - Err(e) => { - sleep(Duration::from_millis(1000)).await; - println!("Error: {:?}", e); - continue; - } - } - } -} diff --git a/examples/simple.rs b/examples/simple.rs new file mode 100644 index 0000000..d583a6f --- /dev/null +++ b/examples/simple.rs @@ -0,0 +1,50 @@ +use std::time::{SystemTime, UNIX_EPOCH}; + +use tokio::time::{sleep, Duration}; + +use taskline::prelude::*; + +fn now() -> f64 { + SystemTime::now() + .duration_since(UNIX_EPOCH) + .unwrap() + .as_millis() as f64 +} + +#[tokio::main] +async fn main() { + let client = + redis::Client::open("redis://127.0.0.1/").expect("the redis client should be created"); + + let queue = Taskline::new( + TasklineConfig::<&str>::new() + .queue_key("taskline-queue") + .build(), + client, + ); + + queue + .write("Hello!".to_string(), now() + 3000.) + .await + .unwrap(); + + println!("the message 'Hello!' will be read in 3s"); + + loop { + let tasks: Vec = queue + .read(now()) + .await + .expect("reading from redis should be ok"); + + if tasks.is_empty() { + sleep(Duration::from_millis(500)).await; + continue; + } + + for task in tasks { + tokio::task::spawn(async move { + println!("Consumed '{}'", task); + }); + } + } +} diff --git a/src/backends/mod.rs b/src/backends/mod.rs deleted file mode 100644 index 13e94df..0000000 --- a/src/backends/mod.rs +++ /dev/null @@ -1,7 +0,0 @@ -//! Backends which can be used to store data. -//! The backends must implement `DequeuBackend` and `EnqueuBackend` traits. -//! They can be used in Consumer and Producer. -#[cfg(feature = "redis")] -pub mod redis; -#[cfg(all(feature = "redis", feature = "json"))] -pub mod redis_json; diff --git a/src/backends/redis.rs b/src/backends/redis.rs deleted file mode 100644 index 068cdf0..0000000 --- a/src/backends/redis.rs +++ /dev/null @@ -1,131 +0,0 @@ -use redis::{AsyncCommands, RedisError}; - -/// Configuration for Redis backend. -/// You can use it to create `RedisBackend` instance. -#[derive(Debug, Clone)] -pub struct RedisBackendConfig { - /// Redis key is used to store tasks. - pub queue_key: String, - /// Number of tasks to read in one batch. - pub read_batch_size: usize, - /// If `true`, tasks will be deleted from queue after reading. - /// If autodelete is `false`, tasks should be deleted explicitly from queue after reading with `RedisBackend::delete`. - pub autodelete: bool, -} - -impl RedisBackendConfig { - /// Create `RedisBackend` instance. - /// It requires `redis::Client` instance. - pub fn with_client(self, client: redis::Client) -> RedisBackend { - RedisBackend::new( - client, - self.queue_key.to_string(), - self.read_batch_size, - self.autodelete, - ) - } -} - -/// Redis backend. -/// It implements both `DequeuBackend` and `EnqueuBackend` traits. -/// You can use score to sort tasks in queue. Usually it is unix timestamp. -#[derive(Debug, Clone)] -pub struct RedisBackend { - client: redis::Client, - queue_key: String, - pop_schedule_script: redis::Script, - read_batch_size: usize, - pub(crate) autodelete: bool, -} - -impl RedisBackend { - /// Create new instance of `RedisBackend`. - /// - /// It requires `redis::Client` instance, redis key used to store tasks and number of tasks to read in one batch. - /// It also creates lua script used to pop tasks from redis. - /// * `client` - redis client. - /// * `queue_key` - redis key is used to store tasks. - /// * `read_batch_size` - number of tasks to read in one batch. - /// * `autodelete` - if `true`, tasks will be deleted from queue after reading. If `false`, tasks should be deleted explicitly from queue after reading with `RedisBackend::delete`. New in version 0.5.0. - pub fn new( - client: redis::Client, - queue_key: String, - read_batch_size: usize, - autodelete: bool, - ) -> Self { - Self { - client, - queue_key, - pop_schedule_script: redis::Script::new( - r" - local key = KEYS[1] - local unix_ts = ARGV[1] - local limit = ARGV[2] - local autodelete = ARGV[3] == '1' - local res = redis.call('zrange', key, '-inf', unix_ts, 'byscore', 'limit', 0, limit) - if autodelete then - for _, raw in ipairs(res) do - redis.call('zrem', key, raw) - end - end - return res", - ), - read_batch_size, - autodelete, - } - } - - /// Calls lua script to pop tasks from redis. - /// If there are no tasks in queue it returns empty vector. - /// If there are no tasks with score less than `score`, returns empty vector. - pub async fn read(&self, score: &f64) -> Result, RedisError> { - let mut con = self.client.get_multiplexed_async_connection().await?; - - let result: Vec = self - .pop_schedule_script - .key(self.queue_key.as_str()) - .arg(score) - .arg(self.read_batch_size) - .arg(self.autodelete as u8) - .invoke_async(&mut con) - .await?; - - Ok(result) - } - - /// Adds a task to redis. - /// It uses score to sort tasks in queue. Usually it is unix timestamp. - pub async fn write(&self, task: &String, score: &f64) -> Result<(), RedisError> { - let mut con = self.client.get_multiplexed_async_connection().await?; - con.zadd(self.queue_key.as_str(), task, score).await - } - - /// Delete a task from queue. - pub async fn delete(&self, task: &String) -> Result<(), RedisError> { - if self.autodelete { - return Ok(()); - } - let mut con = self.client.get_multiplexed_async_connection().await?; - - con.zrem(self.queue_key.as_str(), task).await - } - - /// Check redis version. - pub async fn check_version(&self) -> Result { - let mut con = self.client.get_multiplexed_async_connection().await?; - let res: String = redis::cmd("INFO").query_async(&mut con).await?; - let mut ver = res - .lines() - .find(|s| s.contains("redis_version:")) - .unwrap() - .split(':') - .last() - .unwrap() - .split('.') - .take(2); - - let major: u8 = ver.next().unwrap().parse().unwrap(); - let minor: u8 = ver.next().unwrap().parse().unwrap(); - Ok((major, minor) >= (6, 2)) - } -} diff --git a/src/backends/redis_json.rs b/src/backends/redis_json.rs deleted file mode 100644 index 7ad066b..0000000 --- a/src/backends/redis_json.rs +++ /dev/null @@ -1,79 +0,0 @@ -use serde::{de::DeserializeOwned, Serialize}; - -use crate::backends::redis::RedisBackend; - -/// Error type for `JsonRedisBackend`. -/// It wraps `redis::RedisError` and `serde_json::Error`. -#[derive(Debug)] -pub enum JsonRedisError { - Redis(redis::RedisError), - Serde(serde_json::Error), -} - -/// Redis backend with JSON serialization. -/// It implements both `DequeuBackend` and `EnqueuBackend` traits. -/// It requires `serde::Serialize` and `serde::DeserializeOwned` traits for task type. -/// It overrides `RedisBackend` with `serde_json::to_string` and `serde_json::from_str` calls. -/// The logic of `RedisBackend` is not changed. -#[derive(Clone)] -pub struct JsonRedisBackend { - backend: RedisBackend, - _phantom: std::marker::PhantomData, -} - -impl JsonRedisBackend { - pub fn new(backend: RedisBackend) -> Self { - Self { - backend, - _phantom: std::marker::PhantomData, - } - } - - /// Check redis version. - pub async fn check_version(&self) -> Result { - self.backend.check_version().await - } -} - -impl JsonRedisBackend -where - T: Serialize + Send + Sync, -{ - /// Serializes data to JSON and calls `RedisBackend::write`. - pub async fn write(&self, data: &T, score: &f64) -> Result<(), JsonRedisError> { - let data = match serde_json::to_string(&data) { - Ok(data) => data, - Err(e) => return Err(JsonRedisError::Serde(e)), - }; - match self.backend.write(&data, score).await { - Ok(_) => Ok(()), - Err(e) => Err(JsonRedisError::Redis(e)), - } - } - - /// Delete task from queue. - pub async fn delete(&self, data: &T) -> Result<(), JsonRedisError> { - if self.backend.autodelete { - return Ok(()); - } - let data = match serde_json::to_string(&data) { - Ok(data) => data, - Err(e) => return Err(JsonRedisError::Serde(e)), - }; - match self.backend.delete(&data).await { - Ok(_) => Ok(()), - Err(e) => Err(JsonRedisError::Redis(e)), - } - } -} - -impl JsonRedisBackend -where - T: DeserializeOwned + Send + Sync, -{ - /// Returns `Vec>` because it is possible that some tasks will be corrupted. - pub async fn read(&self, score: &f64) -> Result>, redis::RedisError> { - let data = self.backend.read(score).await?; - Ok(data.into_iter().map(|d| serde_json::from_str(&d)).collect()) - } -} diff --git a/src/lib.rs b/src/lib.rs index a76d710..11ff5a6 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,5 +1,3 @@ //! The library allows to create scheduled tasks via Redis for Rust. -pub mod backends; pub mod prelude; -#[cfg(feature = "tokio")] -pub mod utils; +pub mod taskline; diff --git a/src/prelude.rs b/src/prelude.rs index f37cdca..f610666 100644 --- a/src/prelude.rs +++ b/src/prelude.rs @@ -1,7 +1 @@ -//! Types and traits that are commonly used in the library. -#[cfg(feature = "redis")] -pub use crate::backends::redis::{RedisBackend, RedisBackendConfig}; -#[cfg(all(feature = "redis", feature = "json"))] -pub use crate::backends::redis_json::{JsonRedisBackend, JsonRedisError}; -#[cfg(feature = "tokio")] -pub use crate::utils::*; +pub use crate::taskline::{Taskline, TasklineConfig}; diff --git a/src/taskline.rs b/src/taskline.rs new file mode 100644 index 0000000..4608a54 --- /dev/null +++ b/src/taskline.rs @@ -0,0 +1,129 @@ +use redis::{AsyncCommands, FromRedisValue, RedisError, ToRedisArgs}; + +static POP_SCHEDULE_SCRIPT: &str = r#" +local key = KEYS[1] +local unix_ts = ARGV[1] +local limit = ARGV[2] +local autodelete = ARGV[3] == '1' +local res = redis.call('zrange', key, '-inf', unix_ts, 'byscore', 'limit', 0, limit) +if autodelete then + for _, raw in ipairs(res) do + redis.call('zrem', key, raw) + end +end +return res +"#; + +/// Configuration for Taskline. +#[derive(Debug, Clone)] +pub struct TasklineConfig { + queue_key: K, + read_batch_size: usize, + autodelete: bool, +} + +impl Default for TasklineConfig { + fn default() -> Self { + Self { + queue_key: K::default(), + read_batch_size: 50, + autodelete: true, + } + } +} + +impl TasklineConfig { + pub fn new() -> Self { + Self::default() + } + + /// Redis key is used to store tasks. + pub fn queue_key(mut self, queue_key: impl Into) -> Self { + self.queue_key = queue_key.into(); + self + } + + /// Number of tasks to read in one batch. + pub fn read_batch_size(mut self, read_batch_size: usize) -> Self { + self.read_batch_size = read_batch_size; + self + } + + /// If `true`, tasks will be deleted from queue after reading. + /// If autodelete is `false`, tasks should be deleted explicitly from queue after reading with `Taskline::delete`. + pub fn autodelete(mut self, autodelete: bool) -> Self { + self.autodelete = autodelete; + self + } + + pub fn build(self) -> Self { + Self { + queue_key: self.queue_key, + read_batch_size: self.read_batch_size, + autodelete: self.autodelete, + } + } +} + +/// # Taskline. +/// You can use score to sort tasks in queue. Usually it is unix timestamp. +#[derive(Debug, Clone)] +pub struct Taskline { + config: TasklineConfig, + client: redis::Client, + pop_schedule_script: redis::Script, +} + +impl Taskline { + /// Creates new instance of `Taskline`. + /// + /// It requires `redis::Client` instance, redis key used to store tasks and number of tasks to read in one batch. + pub fn new(config: TasklineConfig, client: redis::Client) -> Self { + Self { + config, + client, + pop_schedule_script: redis::Script::new(POP_SCHEDULE_SCRIPT), + } + } + + /// Calls lua script to pop tasks from redis. + /// If there are no tasks in queue it returns empty vector. + /// If there are no tasks with score less than `score`, returns empty vector. + pub async fn read(&self, score: S) -> Result { + let mut con = self.client.get_multiplexed_async_connection().await?; + + let result: R = self + .pop_schedule_script + .key(self.config.queue_key.clone()) + .arg(score) + .arg(self.config.read_batch_size) + .arg(self.config.autodelete as u8) + .invoke_async(&mut con) + .await?; + + Ok(result) + } +} + +impl Taskline { + /// Adds a task to redis. + /// It uses score to sort tasks in queue. Usually it is unix timestamp. + pub async fn write( + &self, + task: M, + score: S, + ) -> Result<(), RedisError> { + let mut con = self.client.get_multiplexed_async_connection().await?; + con.zadd(self.config.queue_key.clone(), task, score).await + } + + /// Delete a task from queue. + pub async fn delete(&self, task: M) -> Result<(), RedisError> { + if self.config.autodelete { + return Ok(()); + } + let mut con = self.client.get_multiplexed_async_connection().await?; + + con.zrem(self.config.queue_key.clone(), task).await + } +} diff --git a/src/utils.rs b/src/utils.rs deleted file mode 100644 index e155653..0000000 --- a/src/utils.rs +++ /dev/null @@ -1,9 +0,0 @@ -use std::time::{SystemTime, UNIX_EPOCH}; - -/// Returns current time. -pub fn now() -> f64 { - SystemTime::now() - .duration_since(UNIX_EPOCH) - .unwrap() - .as_millis() as f64 -}