v1.1.3

Enqueue 選項

最後更新


本頁列出四個 EnqueueOption 函式,用來調整單一任務的 ID、逾時、成功 Callback 與重試。

EnqueueOption


  1. type EnqueueOption func(*enqueueConfig)
  2. func WithTaskID(id string) EnqueueOption
  3. func WithTimeout(d time.Duration) EnqueueOption
  4. func WithCallback(fn func(id string)) EnqueueOption
  5. func WithRetry(retryMax ...int) EnqueueOption

選項未使用時使用時
WithTaskID產生 UUID v4使用指定 ID;不檢查重複
WithTimeout由 Preset 推算並限制在 15–120 秒直接使用 d
WithCallback無成功後以新 goroutine 帶任務 ID 呼叫
WithRetry失敗一次即結束不帶參數最多重試 3 次;WithRetry(n) 最多 n 次

選項依序套用;同一選項傳入多次時,以最後一個為準。

常見需求


需求選項
自訂任務 IDcore.WithTaskID("order-1001")
單次逾時(不受 15–120 秒限制)core.WithTimeout(5 * time.Minute)
成功時通知core.WithCallback(func(id string) { ... })
失敗時重試core.WithRetry() 或 core.WithRetry(5)

  1. id, err := q.Enqueue(ctx, "email", sendEmail,
  2. core.WithTaskID("order-1001"),
  3. core.WithRetry(5),
  4. core.WithCallback(func(id string) { log.Println("done", id) }),
  5. )

優先權無法逐任務指定,一律來自 Preset,見 Preset。重試行為細節見 執行與重試。
EN