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  }