在 DeepSeek Harness (DSH) 的開發中,智能體經常需要處理定時任務。無論是設置每日提醒,還是複雜的調度邏輯,解析 Cron 表達式、校驗其有效性以及預判未來的觸發時間都是常見需求。手動編寫解析邏輯既繁瑣又容易出錯。下面介紹 dsh-cron-parse 插件,它提供了一套完整的解決方案。
插件定位¶
這是一個由 ZhijiangTang 維護的 DSH 插件。它的核心功能是解析 5 段標準 Cron 表達式(分鐘、小時、日、月、星期),並提供校驗、中文人性化描述、各字段展開值,以及未來若干次運行時間的預覽。該插件採用純 ESM 模塊設計,零依賴,無需構建。
核心能力¶
-
語法支持
支持多種語法形式:*:全部取值*/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均表示週日)。 -
語義邏輯
採用經典的 Vixie 語義:- 並集觸發:當“日(dayOfMonth)”與“星期(dayOfWeek)”都受限時,某天滿足其一即觸發(OR 邏輯);僅一個受限時也生效;都不受限時每天觸發。
- 永不觸發判定:通過“日/月可行組合”預判 + 100000 天迭代上限雙重判定。例如
0 0 30 2 *(2 月 30 日)會被判定爲永不觸發。 - 時間計算:按目標時區的牆鍾逐日推進。夏令時切換瞬間按定點迭代解釋。
-
自檢機制
插件掛載時會自動執行 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 設計,提供了從解析到預覽的一站式能力。