time_wheel_test.go 565 B

1234567891011121314151617181920212223242526272829303132333435
  1. package mhayaTimeWheel
  2. import (
  3. "fmt"
  4. "log"
  5. "testing"
  6. "time"
  7. )
  8. func TestAddFunc(t *testing.T) {
  9. tw := NewTimeWheel(time.Millisecond, 20)
  10. tw.Start()
  11. defer tw.Stop()
  12. id1 := NextId()
  13. tw.AfterFunc(id1, time.Second, func() {
  14. fmt.Println("The timer fires")
  15. })
  16. fmt.Println(id1)
  17. id2 := NextId()
  18. tw.AddEveryFunc(id2, 500*time.Millisecond, func() {
  19. log.Println("500 Millisecond")
  20. })
  21. fmt.Println(id2)
  22. for i := 0; i < 10000; i++ {
  23. tw.BuildEveryFunc(10*time.Millisecond, func() {
  24. go log.Println("10 Millisecond")
  25. })
  26. }
  27. time.Sleep(time.Hour)
  28. }