定时任务

XYGo Admin 2025-02-20 64 次阅读

Cron 定时任务的配置、开发与管理

定时任务

功能概览

  • 可视化管理定时任务(增删改查)
  • 支持 Cron 表达式配置执行周期
  • 在线执行(手动触发一次)
  • 执行日志记录与查询
  • 任务分组管理

任务注册

internal/crons/ 目录下注册任务:

go 复制代码
// internal/crons/example.go
package crons

import (
    "context"
    "xygo/internal/library/cron"
)

func init() {
    cron.Register("example_task", func(ctx context.Context) error {
        // 你的任务逻辑
        g.Log().Info(ctx, "定时任务执行中...")
        return nil
    })
}

后台管理

在后台「系统管理 → 定时任务」中:

  1. 新增任务:选择已注册的任务标识,配置 Cron 表达式
  2. 启用/禁用:控制任务是否参与调度
  3. 在线执行:手动触发一次,立即执行
  4. 执行日志:查看每次执行的结果和耗时

Cron 表达式

复制代码
┌──────────── 秒 (0-59)
│ ┌────────── 分 (0-59)
│ │ ┌──────── 时 (0-23)
│ │ │ ┌────── 日 (1-31)
│ │ │ │ ┌──── 月 (1-12)
│ │ │ │ │ ┌── 周 (0-6, 0=周日)
│ │ │ │ │ │
* * * * * *

常用示例:

表达式 说明
0 */5 * * * * 每 5 分钟
0 0 2 * * * 每天凌晨 2 点
0 0 0 1 * * 每月 1 号零点
0 30 9 * * 1-5 工作日 9:30

任务分组

支持将任务按业务分组管理,方便查找和维护。