wae-scheduler 0.0.2

WAE Scheduler - 任务调度器,支持 Cron、定时任务、延迟任务
Documentation

WAE Scheduler - 任务调度抽象层

提供统一的任务调度能力抽象,支持多种调度模式。

深度融合 tokio 运行时,所有 API 都是异步优先设计。 微服务架构友好,支持定时任务、延迟任务、Cron 表达式等特性。

模块结构

  • [IntervalScheduler] - 固定间隔任务调度器
  • [DelayedQueue] - 延迟任务队列
  • [CronScheduler] - Cron 表达式任务调度器

调度模块 - 提供任务调度功能。

主要功能

  • 定时任务: Cron 表达式定时执行
  • 延迟任务: 延迟执行任务
  • 周期任务: 固定间隔执行
  • 任务管理: 启动、停止、暂停任务

技术栈

  • 调度器: tokio-cron-scheduler
  • 异步运行时: Tokio

使用示例

use wae_scheduler::{IntervalScheduler, ScheduledTask, SchedulerResult};
use async_trait::async_trait;
use std::sync::Arc;
use std::time::Duration;


struct MyTask;


#[async_trait]
impl ScheduledTask for MyTask {
    async fn execute(&self) -> SchedulerResult<()> {
        println!("Task executed!");
        Ok(())
    }

    fn name(&self) -> &str {
        "my_task"
    }
}

#[tokio::main]
async fn main() {
    let scheduler = IntervalScheduler::default_config();
    let task = Arc::new(MyTask);

    let handle = scheduler
        .schedule_interval(task, Duration::from_secs(60))
        .await
        .unwrap();

    println!("Task scheduled: {}", handle.name);

    scheduler.shutdown().await;
}

Cron 表达式

秒 分 时 日 月 周
*  *  *  *  *  *
|  |  |  |  |  |
|  |  |  |  |  +-- 周几 (0-6, 0=周日)
|  |  |  |  +----- 月份 (1-12)
|  |  |  +-------- 日期 (1-31)
|  |  +----------- 小时 (0-23)
|  +-------------- 分钟 (0-59)
+----------------- 秒 (0-59)