a3s_cron/lib.rs
1//! A3S Cron - Task scheduling library
2//!
3//! Provides cron-based task scheduling with:
4//! - Standard 5-field cron syntax parsing
5//! - Natural language schedule parsing (English & Chinese)
6//! - Task persistence and monitoring
7//! - CRUD operations for job management
8//!
9//! ## Quick Start
10//!
11//! ```ignore
12//! use a3s_cron::{CronManager, CronJob, JobStatus, parse_natural};
13//!
14//! // Create a manager with file-based storage
15//! let manager = CronManager::new("/path/to/workspace").await?;
16//!
17//! // Add a job using natural language
18//! let schedule = parse_natural("every day at 2am")?; // Returns "0 2 * * *"
19//! let job = manager.add_job("backup", &schedule, "backup.sh").await?;
20//!
21//! // Or use Chinese
22//! let schedule = parse_natural("每天凌晨2点")?; // Returns "0 2 * * *"
23//!
24//! // List all jobs
25//! let jobs = manager.list_jobs().await?;
26//!
27//! // Start the scheduler
28//! manager.start().await?;
29//! ```
30
31pub mod natural;
32mod parser;
33mod scheduler;
34mod store;
35pub mod telemetry;
36mod types;
37
38pub use natural::parse_natural;
39pub use parser::CronExpression;
40pub use scheduler::{CronManager, SchedulerEvent};
41pub use store::{CronStore, FileCronStore, MemoryCronStore};
42pub use types::{
43 AgentExecutor, AgentJobConfig, CronError, CronJob, ExecutionStatus, JobExecution, JobStatus,
44 JobType, Result,
45};