超時
最後更新
本頁說明單一任務的執行時限與逾時回呼的行為。
設定時限
- _, err := c.Add("@every 1m", slowJob, "slow job", 3*time.Second, func() {
- log.Println("slow job timed out")
- })
- if err != nil {
- log.Fatal(err)
- }
time.Duration 參數是執行時限而非啟動延遲;func() 參數僅在超過該時限時呼叫。逾時行為
| 行為 | 說明 |
|---|---|
| 計時起點 | action 開始執行時 |
| 逾時結果 | 任務標記為 TaskFailed,呼叫逾時回呼 |
| action goroutine | 不會被中斷,持續執行至返回 |
| 設有時限時發生 panic | 不會被 recover:action goroutine 沒有 recover,行程直接結束 |
| 未設定時限 | action 同步執行至返回;panic 會被 recover,任務標記為 TaskFailed |
| 逾時錯誤文字 | 無依賴任務為 task timeout: <時限奈秒數>,有依賴任務為 task timeout <時限奈秒數> |
Add 的完整選項見 設定。