v1.2.1

超時

最後更新


本頁說明單一任務的執行時限與逾時回呼的行為。

設定時限


  1. _, err := c.Add("@every 1m", slowJob, "slow job", 3*time.Second, func() {
  2. log.Println("slow job timed out")
  3. })
  4. if err != nil {
  5. log.Fatal(err)
  6. }

time.Duration 參數是執行時限而非啟動延遲;func() 參數僅在超過該時限時呼叫。

逾時行為


行為說明
計時起點action 開始執行時
逾時結果任務標記為 TaskFailed,呼叫逾時回呼
action goroutine不會被中斷,持續執行至返回
設有時限時發生 panic不會被 recover:action goroutine 沒有 recover,行程直接結束
未設定時限action 同步執行至返回;panic 會被 recover,任務標記為 TaskFailed
逾時錯誤文字無依賴任務為 task timeout: <時限奈秒數>,有依賴任務為 task timeout <時限奈秒數>

Add 的完整選項見 設定。
EN