github.com/songzhibin97/gkit@v1.2.13/container/queue/codel/example_test.go (about) 1 package codel 2 3 import ( 4 "context" 5 6 "github.com/songzhibin97/gkit/overload/bbr" 7 ) 8 9 var queue *Queue 10 11 func ExampleNew() { 12 // 默认配置 13 // queue = NewQueue() 14 15 // 可供选择配置选项 16 17 // 设置对列延时 18 // SetTarget(40) 19 20 // 设置滑动窗口最小时间宽度 21 // SetInternal(1000) 22 23 queue = NewQueue(SetTarget(40), SetInternal(1000)) 24 } 25 26 func ExampleQueue_Stat() { 27 // start 体现 CoDel 状态信息 28 start := queue.Stat() 29 30 _ = start 31 } 32 33 func ExampleQueue_Push() { 34 // 入队 35 if err := queue.Push(context.TODO()); err != nil { 36 if err == bbr.LimitExceed { 37 // todo 处理过载保护错误 38 } else { 39 // todo 处理其他错误 40 } 41 } 42 } 43 44 func ExampleQueue_Pop() { 45 // 出队,没有请求则会阻塞 46 queue.Pop() 47 }