44 lines
727 B
Go
44 lines
727 B
Go
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()
|
|
})
|
|
}
|