# pardnchiu/go-scheduler > go-scheduler is a Go task scheduler for cron jobs: cron expressions, @every intervals, task dependencies with Stop or Skip, and timeouts, by Pardn Chiu. Maintained by 邱敬幃 Pardn Chiu (pardnchiu), Pardn Co., Ltd, Taiwan · Infrastructure Engineering. Source: https://github.com/pardnchiu/go-scheduler Full text in one file: [English](https://go-scheduler.pardn.io/llms-full.txt) · [中文](https://go-scheduler.pardn.io/zh/llms-full.txt) ## Overview - [Home](https://go-scheduler.pardn.io/index.md): go-scheduler is a Go task scheduler for cron jobs: cron expressions, @every intervals, task dependencies with Stop or Skip, and timeouts, by Pardn Chiu. - [Getting Started](https://go-scheduler.pardn.io/getting-started.md): Install go-scheduler, register a first cron task with core.New and Add, start the event loop, and wait for in-flight tasks on shutdown. ## Concepts - [Architecture](https://go-scheduler.pardn.io/architecture.md): How the go-scheduler event loop, min-heap, expression parser, and dependency worker pool fit together. - [Task Model](https://go-scheduler.pardn.io/core-concepts.md): What a go-scheduler task holds, how func() and func() error actions differ, and every task state transition. - [Schedule Syntax](https://go-scheduler.pardn.io/core-concepts-schedule.md): Cron expression syntax in go-scheduler: five fields, how */n steps match, @yearly to @hourly descriptors, and the 30-second @every minimum. - [Task Dependencies](https://go-scheduler.pardn.io/core-concepts-dependencies.md): How go-scheduler tasks wait on prerequisites, the Stop and Skip failure policies, and the fixed one-minute wait limit. - [Timeouts](https://go-scheduler.pardn.io/core-concepts-timeouts.md): Per-task execution limits and timeout callbacks in go-scheduler, why the action keeps running after a timeout, and how panics behave. - [Scheduler Lifecycle](https://go-scheduler.pardn.io/core-concepts-lifecycle.md): How Add, Remove, RemoveAll, Start, and Stop behave before and after Start in go-scheduler, and what happens on Start after Stop. ## Reference - [Configuration](https://go-scheduler.pardn.io/configuration.md): Scheduler timezone, per-task Add options, dependency wait limits, logging, and worker pool sizing in go-scheduler. - [Scheduler API](https://go-scheduler.pardn.io/api-reference.md): Signatures for go-scheduler core.Config, core.New, Start, and Stop, including the shutdown context returned by Stop. - [Task API](https://go-scheduler.pardn.io/api-reference-tasks.md): Signatures and error returns for go-scheduler Add, Remove, RemoveAll, and List, plus the TaskPending to TaskFailed constants. - [Dependency API](https://go-scheduler.pardn.io/api-reference-dependencies.md): The go-scheduler Wait struct and WaitState Stop and Skip constants used to declare task prerequisites. - [Removed APIs](https://go-scheduler.pardn.io/removed-apis.md): go-scheduler identifiers removed in v1.2.1 and v0.3.1, the last version that had them, and the core package replacements. ## Symbols Exported symbol -> page that documents it. - `Config` (core): [Getting Started](https://go-scheduler.pardn.io/getting-started.md) - `New` (core): [Scheduler API](https://go-scheduler.pardn.io/api-reference.md), [Getting Started](https://go-scheduler.pardn.io/getting-started.md) - `Skip` (core): [Configuration](https://go-scheduler.pardn.io/configuration.md), [Getting Started](https://go-scheduler.pardn.io/getting-started.md) - `Stop` (core): [Configuration](https://go-scheduler.pardn.io/configuration.md), [Scheduler Lifecycle](https://go-scheduler.pardn.io/core-concepts-lifecycle.md) - `TaskCompleted` (core): [Task Model](https://go-scheduler.pardn.io/core-concepts.md) - `TaskFailed` (core): [Task Model](https://go-scheduler.pardn.io/core-concepts.md) - `TaskPending` (core): [Task Model](https://go-scheduler.pardn.io/core-concepts.md) - `TaskRunning` (core): [Task Model](https://go-scheduler.pardn.io/core-concepts.md) - `Wait` (core): [Configuration](https://go-scheduler.pardn.io/configuration.md), [Task Dependencies](https://go-scheduler.pardn.io/core-concepts-dependencies.md) - `WaitState` (core): [Task Dependencies](https://go-scheduler.pardn.io/core-concepts-dependencies.md) ## 中文文件 - [首頁](https://go-scheduler.pardn.io/zh/index.md): go-scheduler:Go Cron 排程器,支援 crontab 式五欄位語法、@every 間隔、Stop/Skip 前置任務策略與執行逾時,由邱敬幃 Pardn Chiu 開發。 - [快速開始](https://go-scheduler.pardn.io/zh/getting-started.md): 安裝 go-scheduler,以 core.New 與 Add 註冊第一個 Cron 任務、啟動事件迴圈並在關閉時等待進行中任務。 - [架構](https://go-scheduler.pardn.io/zh/architecture.md): go-scheduler 事件迴圈、最小堆、表達式解析器與依賴 Worker 池的組成關係。 - [任務模型](https://go-scheduler.pardn.io/zh/core-concepts.md): go-scheduler 任務包含的內容、func() 與 func() error 的差異,以及全部任務狀態轉換。 - [排程語法](https://go-scheduler.pardn.io/zh/core-concepts-schedule.md): go-scheduler 的 cron 表達式語法:五個欄位、*/n 步進比對方式、@yearly 至 @hourly 描述符與最小 30 秒的 @every。 - [任務依賴](https://go-scheduler.pardn.io/zh/core-concepts-dependencies.md): go-scheduler 任務如何等待前置任務、Stop 與 Skip 失敗策略,以及固定一分鐘的等待時限。 - [超時](https://go-scheduler.pardn.io/zh/core-concepts-timeouts.md): go-scheduler 單一任務的執行時限與逾時回呼、逾時後 action 為何持續執行,以及 panic 的處理方式。 - [排程器生命週期](https://go-scheduler.pardn.io/zh/core-concepts-lifecycle.md): Add、Remove、RemoveAll、Start、Stop 在 go-scheduler 啟動前後的行為差異,以及 Stop 後再 Start 的結果。 - [設定](https://go-scheduler.pardn.io/zh/configuration.md): go-scheduler 的排程時區、Add 任務選項、依賴等待時限、日誌與 Worker 池大小。 - [排程器 API](https://go-scheduler.pardn.io/zh/api-reference.md): go-scheduler 的 core.Config、core.New、Start 與 Stop 簽章,以及 Stop 回傳的關閉 context。 - [任務 API](https://go-scheduler.pardn.io/zh/api-reference-tasks.md): go-scheduler Add、Remove、RemoveAll、List 的簽章與錯誤回傳,以及任務狀態常數。 - [依賴 API](https://go-scheduler.pardn.io/zh/api-reference-dependencies.md): go-scheduler 宣告前置任務所用的 Wait 結構與 WaitState 的 Stop、Skip 常數。 - [已移除 API](https://go-scheduler.pardn.io/zh/removed-apis.md): go-scheduler 於 v1.2.1 與 v0.3.1 移除的識別字、最後存在版本與 core 套件中的替代做法。 ## Optional - [Release Notes](https://go-scheduler.pardn.io/released/index.md): pardnchiu/go-scheduler changelog by version