v1.1.3

API 參考

最後更新


本頁列出 github.com/pardnchiu/go-queue/core 的 Queue 方法與公開型別。

Queue


  1. func New(config *Config) *Queue
  2. func (q *Queue) Start(ctx context.Context) error
  3. func (q *Queue) Enqueue(ctx context.Context, presetName string, action func(ctx context.Context) error, options ...EnqueueOption) (string, error)
  4. func (q *Queue) Shutdown(ctx context.Context) error

方法說明
New建立佇列並合併預設值;config 可為 nil。佇列初始為 Created 狀態
Start啟動 Workers 個 Worker。ctx 是所有任務 ctx 的父層;取消它不會停止 Worker,但之後的任務會拿到已取消的 ctx
Enqueue推入任務並回傳 ID。ctx 只在入列前檢查是否已取消,不會傳給任務;任務拿到的是由 Start ctx 衍生的逾時 ctx
Shutdown轉為 Closed、喚醒所有 Worker,並等待堆清空。ctx 到期時取消所有任務 ctx 並回傳錯誤;重複呼叫回傳 nil

Config 與 PresetConfig


  1. type Config struct {
  2. Workers int
  3. Size int
  4. Timeout time.Duration
  5. Preset map[string]PresetConfig
  6. }
  7. type PresetConfig struct {
  8. Priority Priority
  9. Timeout time.Duration
  10. }

欄位與預設值見 設定 與 Preset。

Priority


  1. type Priority int
  2. const (
  3. PriorityImmediate Priority = iota
  4. PriorityHigh
  5. PriorityRetry
  6. PriorityNormal
  7. PriorityLow
  8. )

數值越小越先執行。見 優先權等級 與 逾時推算。
其他參考頁:Enqueue 選項、錯誤、日誌事件、已移除 API。
EN