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  }