v1.2.1

pardnchiu/go-scheduler

最後更新

Note此 README 由 SKILL 生成,英文版請參閱 這裡。



SCHEDULE TASKS WITH DEPENDENCIES, TIMEOUTS, AND CRON EXPRESSIONS


Go ReferenceReleaseLicense
Mentioned in Awesome Go




Go 定時任務排程函式庫,具備任務依賴鏈、執行逾時控制與優雅關閉

目錄



功能特點


go get github.com/pardnchiu/go-scheduler@latest · 完整文件

  • 任務依賴鏈 — 以 []Wait 宣告前置任務,前置失敗時可選擇 Stop 中止或 Skip 略過。
  • 超時與回呼 — 為單一任務設定執行時限,逾時觸發回呼並將任務標記為失敗。
  • Cron、描述符與固定間隔 — 同時支援五欄位 Cron、@daily 等描述符與 @every 間隔排程。
  • 最小堆事件迴圈 — 以最小堆追蹤下次觸發時間,執行中即可新增或移除任務而無需重啟。
  • 優雅關閉 — Stop 回傳 context,於進行中任務結束後才完成。

架構


完整架構

graph TB
    App[呼叫端] --> Cron[Cron 排程器]
    Cron --> Parser[表達式解析器]
    Cron --> Heap[任務最小堆]
    Heap --> Loop[事件迴圈]
    Loop -->|無依賴| Runner[任務執行]
    Loop -->|有依賴| Depend[依賴子系統]
    Depend --> Workers[Worker 池]
    Workers --> Runner
    Runner --> State[狀態更新]
  1. graph TB
  2. App[呼叫端] --> Cron[Cron 排程器]
  3. Cron --> Parser[表達式解析器]
  4. Cron --> Heap[任務最小堆]
  5. Heap --> Loop[事件迴圈]
  6. Loop -->|無依賴| Runner[任務執行]
  7. Loop -->|有依賴| Depend[依賴子系統]
  8. Depend --> Workers[Worker 池]
  9. Workers --> Runner
  10. Runner --> State[狀態更新]

授權


本專案採用 MIT LICENSE。

Author


Just open an issue to share an idea.
go-scheduler contributors


©️ 2025 邱敬幃 Pardn Chiu
EN