wp-go/taskPools/pools_test.go

44 lines
727 B
Go
Raw Normal View History

2022-12-07 05:26:52 +00:00
package taskPools
import (
"fmt"
"log"
"testing"
"time"
)
func TestPools_Execute(t *testing.T) {
t.Run("pools", func(t *testing.T) {
p := NewPools(3)
for i := 0; i < 10; i++ {
i := i
p.Execute(func() {
time.Sleep(time.Second)
log.Printf("task[%d] done", i)
})
}
p.Wait()
})
}
func TestPools_ExecuteWithTimeOut(t *testing.T) {
t.Run("timeout test", func(t *testing.T) {
p := NewPools(3)
for i := 0; i < 10; i++ {
i := i
p.ExecuteWithTimeOut(2*time.Second, func() {
log.Printf("start task[%d]", i)
tt := time.Second
if i == 0 {
tt = 7 * time.Second
}
time.Sleep(tt)
log.Printf("task[%d] done", i)
}, fmt.Sprintf("task [%d]", i))
}
p.Wait()
})
}