Skip to content

v1.1.2

Choose a tag to compare

@pardnchiu pardnchiu released this 01 Jan 05:55
· 7 commits to master since this release

REFACTOR

  • task.go: Refactored taskHeap from a slice type to a struct, added tasks and minCap fields to support dynamic minimum capacity.
  • task.go: Updated Len, Less, Swap, Push, and Pop methods of taskHeap to fit the new struct structure.
  • pending.go: Fixed newPending initialization to calculate dynamic minimum capacity based on workers and size (max(16, min(size/8, size/workers))).

PERF

  • task.go: Optimized heap shrink logic, changed trigger condition from capacity > taskHeapMinCap && length < capacity/4 to capacity > minCap*4 && length < capacity/taskHeapMinCapRatio.
  • task.go: Improved shrink capacity calculation, using max(capacity/4, minCap) to ensure it does not fall below the minimum capacity.
  • pending.go: Optimized promoteLocked access efficiency by retrieving the tasks field first to avoid repeated access.

UPDATE

  • new.go: Fixed newPending call, added workers parameter.

FIX

  • new.go: Added debug log for timeout trigger (task.timeout_triggered), recording id, preset, and timeout information.

REFACTOR

  • task.go: 將 taskHeap 從 slice 型別重構為 struct,新增 tasks 與 minCap 欄位,支援動態最小容量
  • task.go: 調整 taskHeap 的 Len、Less、Swap、Push、Pop 方法,適配新的 struct 結構
  • pending.go: 修正 newPending 初始化,根據 workers 與 size 計算動態最小容量(max(16, min(size/8, size/workers)))

PERF

  • task.go: 優化 heap shrink 邏輯,將觸發條件由 capacity > taskHeapMinCap && length < capacity/4 改為 capacity > minCap*4 && length < capacity/taskHeapMinCapRatio
  • task.go: 改進縮減容量計算,使用 max(capacity/4, minCap) 確保不低於最小容量
  • pending.go: 優化 promoteLocked 存取效率,先取得 tasks 欄位避免重複存取

UPDATE

  • new.go: 修正 newPending 呼叫,新增 workers 參數

FIX

  • new.go: 新增 timeout 觸發時的 debug 日誌(task.timeout_triggered),記錄 id、preset、timeout 資訊