ntfy/util/batching_queue_test.go

26 lines
467 B
Go
Raw Normal View History

2022-11-16 08:24:56 +13:00
package util_test
import (
"fmt"
"heckel.io/ntfy/util"
"math/rand"
"testing"
"time"
)
func TestConcurrentQueue_Next(t *testing.T) {
q := util.NewBatchingQueue[int](25, 200*time.Millisecond)
go func() {
for batch := range q.Pop() {
fmt.Printf("Batch of %d items\n", len(batch))
}
}()
for i := 0; i < 1000; i++ {
go func(i int) {
time.Sleep(time.Duration(rand.Intn(1000)) * time.Millisecond)
q.Push(i)
}(i)
}
time.Sleep(2 * time.Second)
}