v1.1.2 Release Notes
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 資訊