跳到主要内容

任务调度模块

翻译状态

此页面正在翻译中,完整内容请参考 英文版本

Tarpit 任务调度模块使用 cron 表达式提供强大的任务调度功能,支持精确的时间控制、错误处理、任务管理和监控功能。

功能特性

  • 基于 Cron 的调度: 完整的 cron 表达式支持和时区处理
  • 错误处理: 全面的错误类型(重试、崩溃、忽略、完成)
  • 任务管理: 动态启动、停止、取消和重新加载任务
  • 监控: 检查运行和暂停的任务
  • 钩子: 自定义逻辑的生命周期钩子
  • 依赖注入: 与 Tarpit 的 DI 系统完全集成

核心概念

1. 任务装饰器

@Task 装饰器使用 cron 表达式定义调度任务。

2. 任务上下文

每个任务都会接收一个 TaskContext 对象,提供任务元数据和状态管理。

3. 错误处理

任务可以抛出特殊异常来控制执行流程。

Cron 表达式格式

Tarpit 使用 6 字段的 cron 表达式:

┌─────────────── 秒 (0-59)
│ ┌───────────── 分钟 (0-59)
│ │ ┌─────────── 小时 (0-23)
│ │ │ ┌───────── 月份中的天 (1-31)
│ │ │ │ ┌─────── 月份 (1-12)
│ │ │ │ │ ┌───── 星期几 (0-7, 0=星期日)
│ │ │ │ │ │
* * * * * *

时区支持

任务可以指定执行时区:

@Task('0 0 9 * * *', 'morning_task', { tz: 'Asia/Shanghai' })
@Task('0 0 9 * * *', 'utc_task', { utc: true })