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 設計,提供了從解析到預覽的一站式能力。

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

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

小夜