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 資訊
©️ 2025 邱敬幃 Pardn Chiu
Top comments (0)