dsh-cron-parse:标准 Cron 表达式解析与运行预览工具

在 DeepSeek Harness (DSH) 的开发中,智能体经常需要处理定时任务。无论是设置每日提醒,还是复杂的调度逻辑,解析 Cron 表达式、校验其有效性以及预判未来的触发时间都是常见需求。手动编写解析逻辑既繁琐又容易出错。下面介绍 dsh-cron-parse 插件,它提供了一套完整的解决方案。

插件定位

这是一个由 ZhijiangTang 维护的 DSH 插件。它的核心功能是解析 5 段标准 Cron 表达式(分钟、小时、日、月、星期),并提供校验、中文人性化描述、各字段展开值,以及未来若干次运行时间的预览。该插件采用纯 ESM 模块设计,零依赖,无需构建。

核心能力

  1. 语法支持
    支持多种语法形式:

    • *:全部取值
    • */n:每 n(自最小值起)个单位
    • a-b:闭区间
    • a-b/n:区间内步进
    • 列表:多值并集(如 1,15,30)
    • 名称:月名或星期名(如 jan-dec、sun-sat),大小写不敏感

    各字段取值范围:分钟 0-59,小时 0-23,日 1-31,月 1-12,星期 0-7(0 和 7 均表示周日)。

  2. 语义逻辑
    采用经典的 Vixie 语义:

    • 并集触发:当“日(dayOfMonth)”与“星期(dayOfWeek)”都受限时,某天满足其一即触发(OR 逻辑);仅一个受限时也生效;都不受限时每天触发。
    • 永不触发判定:通过“日/月可行组合”预判 + 100000 天迭代上限双重判定。例如 0 0 30 2 *(2 月 30 日)会被判定为永不触发。
    • 时间计算:按目标时区的墙钟逐日推进。夏令时切换瞬间按定点迭代解释。
  3. 自检机制
    插件挂载时会自动执行 5 条自检,证据行输出到日志,前缀为 [dsh-cron-parse]。

安装与启用

在 DSH 环境中执行以下命令安装插件:

dsh plugin --profile <name> add file:./plugins/dsh-cron-parse

安装后,组合层会挂载 cron_parse 工具。

典型用法

调用 cron_parse 层时,需传入参数。参数说明如下:

  • expression(必填):5 段标准 cron 字符串。
  • count(可选):未来运行次数,取值范围 1–10,默认 5。
  • tz(可选):IANA 时区名(如 Asia/Shanghai、UTC),默认本地时区。
  • now(可选):ISO 8601 基准时间,默认当前时间。

该工具返回包含以下字段的规范值:ok、valid、description(中文描述)、fields(各字段展开值)、nextRuns(未来运行时间列表)、timezone、errors。

适用场景与注意

  • 适用场景:DSH 智能体开发中需要处理定时任务调度、需要中文输出 cron 含义、需要校验表达式合法性的场景。
  • 局限性:仅支持 5 段标准 cron,不支持秒段,也不支持 L、W、#、? 等特殊字符。
  • 注意事项:插件以当前 DSH 进程权限运行,安装前建议检查源码与许可证(MIT)。

该插件通过零依赖和纯 ESM 设计,提供了从解析到预览的一站式能力。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜