puniyu_task 0.4.0

puniyu 的定时任务模块
Documentation
# puniyu_task

定时任务管理模块

## 概述

`puniyu_task` 是 puniyu 项目中负责定时任务调度和管理的核心库。它基于 `tokio-cron-scheduler` 实现,提供了任务的创建、调度和执行功能,支持
cron 表达式定时执行任务。

## 核心组件

### Task 结构体

任务包装结构体,包含:

- `plugin_name`: 插件名称
- `builder`: 任务构建器(`Arc<dyn TaskBuilder>`
### 全局调度器

- `SCHEDULER`: 使用 `OnceCell` 实现的全局任务调度器实例
- `init_scheduler`: 初始化全局调度器的异步函数

## 功能特性

### 任务调度

- 基于 cron 表达式的定时任务调度
- 使用 `Asia/Shanghai` 时区
- 支持异步任务执行
- 自动记录任务执行时间和性能指标

### 任务执行日志

- 任务开始执行时记录日志
- 任务执行完成后记录耗时
- 使用彩色日志输出提升可读性

### 类型转换

实现了从 `Task` 到 `tokio_cron_scheduler::Job` 的转换,自动包装任务执行逻辑。

## 技术细节

### 任务执行流程

1. 从 cron 表达式解析调度时间
2. 在指定时间触发任务执行
3. 记录任务开始执行日志
4. 执行任务逻辑
5. 记录任务完成日志和执行耗时

### 日志格式

- 任务开始:`[task:任务名称] 开始执行`
- 任务完成:`[task:任务名称] 执行完成,耗时: Xms`

### 时区支持

所有任务调度均使用 `Asia/Shanghai` 时区,确保时间准确性。

## 依赖集成

重新导出了以下 crate:

- `tokio_cron_scheduler`: 核心调度器
- `uuid`: UUID 生成器

## 线程安全

- 使用 `Arc` 确保任务构建器的线程安全
- 使用 `OnceCell` 确保全局调度器的线程安全初始化
- 基于 tokio 异步运行时实现并发安全

## 许可证

本项目采用 [LGPL](../../LICENSE) 许可证。