a3s-cron 0.1.0

Cron scheduling library for A3S with natural language support
Documentation

a3s-cron

Cron scheduling library for A3S with natural language support.

Features

  • Standard Cron Syntax: 5-field cron expressions (minute hour day month weekday)
  • Natural Language: Parse schedules from English and Chinese
  • Persistence: JSON file-based storage with pluggable backends
  • CRUD Operations: Create, pause, resume, update, and remove jobs
  • Execution History: Track job runs with output and status

Usage

use a3s_cron::{CronManager, FileCronStore, parse_natural};

// Parse natural language to cron expression
let cron = parse_natural("every day at 2am")?;  // Returns "0 2 * * *"
let cron = parse_natural("每天凌晨2点")?;        // Returns "0 2 * * *"

// Create a manager with file-based storage
let store = FileCronStore::new("/path/to/storage").await?;
let manager = CronManager::new(store);

// Add a job
manager.add_job("backup", "0 2 * * *", "backup.sh").await?;

// List jobs
let jobs = manager.list_jobs().await?;

// Pause/resume
manager.pause_job(&job_id).await?;
manager.resume_job(&job_id).await?;

Natural Language Support

English

  • every minute, every 5 minutes
  • every hour, every 2 hours
  • daily at 2am, every day at 14:30
  • weekly on monday at 9am
  • monthly on the 15th
  • every weekday at 8am
  • every weekend at 10am

Chinese

  • 每分钟, 每5分钟
  • 每小时, 每2小时
  • 每天凌晨2点, 每天下午3点30分
  • 每周一上午9点
  • 每月15号
  • 工作日上午9点
  • 周末上午10点

License

MIT