Skip to content

Commit bf1bf85

Browse files
Fix: documents
1 parent d6b29e4 commit bf1bf85

File tree

4 files changed

+32
-3
lines changed

4 files changed

+32
-3
lines changed

.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
/target
22
/Cargo.lock
3-
/tests
3+
/tests
4+
/.idea

src/job_executor.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,15 @@ use std::sync::{Arc, RwLock};
77
use tokio::task::JoinHandle;
88
use crate::job_storage::JobStorage;
99

10-
10+
/// `JobExecutor` is used to execute jobs
1111
pub trait JobExecutor:Send + Sync{
12+
/// start job execution
1213
fn start(&self)->JoinHandle<()>;
14+
/// stop job execution and wait for all running jobs to complete
1315
fn stop(&self)->Pin<Box<dyn Future<Output = ()>>>;
1416
}
1517

18+
/// Default implementation for `JobExecutor`
1619
pub struct DefaultJobExecutor<Tz: chrono::TimeZone + Send + Sync>{
1720
jobs: Arc<dyn JobStorage<Tz>>,
1821
tasks:Arc<RwLock<Vec<JoinHandle<()>>>>,

src/job_storage.rs

+3
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,9 @@ pub trait JobStorage<Tz: chrono::TimeZone + Send + Sync>: Send + Sync {
6868
async fn restore_jobs(&self) -> Result<(), SchedulerError>;
6969
}
7070

71+
/// Simple Memory Job Storage implements `JobStorage`
72+
///
73+
/// !!! This JobStorage is not recommended for production environment !!!
7174
pub struct MemoryJobStorage<Tz = chrono::Utc>
7275
where Tz: chrono::TimeZone + Sync + Send
7376
{

src/lib.rs

+23-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,28 @@
1+
//! # TOKIO-SCHEDULER-RS
2+
//!
3+
//! Yet Another JobScheduler
4+
//!
5+
//! # Example
6+
//! ```rust
7+
//! # use tokio_scheduler_rs::job_scheduler::JobScheduler;
8+
//! let scheduler = JobScheduler::default_with_timezone(chrono_tz::PRC);
9+
//! scheduler.register_job(Box::new(HelloWorldJob)).unwrap();
10+
//! scheduler.add_job("HelloWorldJob".into(),"*/5 * * * * * *".into(),None).await.unwrap();
11+
//! scheduler.restore_jobs().await.unwrap(); // This step is used to restore job execute status.
12+
//! // Please notice that you can implement you own job storage to store job status.
13+
//! scheduler.start().await.unwrap(); // `start()` returns a tokio::JoinHandle<()>, you can continue this program if you don't await it.
14+
//! ```
15+
116
pub mod job_storage;
217
pub mod errors;
318
pub mod job;
419
pub mod job_scheduler;
520
pub mod job_executor;
6-
pub use serde_json;
21+
pub use serde_json;
22+
pub use async_trait;
23+
pub use job::ScheduleJob;
24+
pub use job_storage::JobStorage;
25+
pub use job_scheduler::JobScheduler;
26+
pub use job_executor::JobExecutor;
27+
pub use job_storage::MemoryJobStorage;
28+
pub use job_executor::DefaultJobExecutor;

0 commit comments

Comments
 (0)