github.com/songzhibin97/gkit@v1.2.13/goroutine/example_test.go (about) 1 package goroutine 2 3 import ( 4 "context" 5 "time" 6 7 "github.com/songzhibin97/gkit/log" 8 ) 9 10 var gGroup GGroup 11 12 func mockFunc() func() { 13 return func() { 14 } 15 } 16 17 func ExampleNewGoroutine() { 18 // 默认配置 19 // gGroup = NewGoroutine(context.TODO()) 20 21 // 可供选择配置选项 22 23 // 设置停止超时时间 24 // SetStopTimeout(time.Second) 25 26 // 设置日志对象 27 // SetLogger(&testLogger{}) 28 29 // 设置pool最大容量 30 // SetMax(100) 31 32 gGroup = NewGoroutine(context.TODO(), 33 SetStopTimeout(time.Second), 34 SetLogger(log.DefaultLogger), 35 SetMax(100), 36 ) 37 } 38 39 func ExampleGoroutine_AddTask() { 40 if !gGroup.AddTask(mockFunc()) { 41 // 添加任务失败 42 } 43 } 44 45 func ExampleGoroutine_AddTaskN() { 46 // 带有超时控制添加任务 47 if !gGroup.AddTaskN(context.TODO(), mockFunc()) { 48 // 添加任务失败 49 } 50 } 51 52 func ExampleGoroutine_ChangeMax() { 53 // 修改 pool最大容量 54 gGroup.ChangeMax(1000) 55 } 56 57 func ExampleGoroutine_Shutdown() { 58 // 回收资源 59 _ = gGroup.Shutdown() 60 }