github.com/JohanShen/go-utils@v1.1.4-0.20201117124024-901319a2b2a0/timer/timer_test.go (about) 1 package timer 2 3 import ( 4 "fmt" 5 "github.com/JohanShen/go-utils/logger" 6 "runtime" 7 "testing" 8 "time" 9 ) 10 11 func TestNewTimer(t *testing.T) { 12 13 var config = &logger.Config{Name: "test", ConsoleLog: false, LogPath: "./%Y/%M%D/%H%I.log", WriteDelay: 50, ShowInTopLevel: []string{"token", "userid"}} 14 var logger1 logger.Logger 15 16 logger1 = logger.NewZapLogger(config) 17 //logger1 = logger.DefaultLogger() 18 19 timer := NewTimer(500).UseLogger(logger1) 20 timer.Elapsed.Bind(handleCallBack) 21 timer.Start() 22 print("协程数量:", runtime.NumGoroutine()) 23 go func(timer *Timer) { 24 for i := 0; i < 100; i++ { 25 if err := timer.SetInterval(int64(i*i) + 1); err == nil { 26 27 } 28 time.Sleep(time.Millisecond * 250) 29 } 30 }(timer) 31 32 time.Sleep(time.Second * 30) 33 timer.Stop() 34 print("协程数量:", runtime.NumGoroutine()) 35 } 36 37 // 延迟处理回调 38 func handleCallBack(arg *EventArg) error { 39 //panic(arg) 40 fmt.Println(arg) 41 return nil 42 }