Skip to main content

Crate wae_scheduler

Crate wae_scheduler 

Source
Expand description

§WAE Scheduler - 任务调度抽象层

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

深度融合 tokio 运行时,所有 API 都是异步优先设计。 微服务架构友好,支持定时任务、延迟任务、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)

Structs§

CronExpression
Cron 表达式
CronScheduler
Cron 调度器
CronSchedulerConfig
Cron 调度器配置
CronTask
Cron 任务
DelayedQueue
延迟任务队列
DelayedQueueConfig
延迟任务队列配置
DelayedTask
延迟任务
IntervalScheduler
间隔任务调度器
IntervalSchedulerConfig
间隔任务调度器配置
TaskHandle
任务句柄
WaeError
中心化错误类型

Enums§

CronField
Cron 字段
TaskState
任务状态
WaeErrorKind
统一错误类型枚举

Traits§

DelayedTaskExecutor
延迟任务执行器 trait
ScheduledTask
定时任务 trait

Functions§

cron_scheduler
便捷函数:创建 Cron 调度器
interval_scheduler
便捷函数:创建间隔任务调度器

Type Aliases§

TaskId
任务 ID 类型
WaeResult
WAE 结果类型