| 12345678910111213141516171819202122232425 |
- 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)
- }
|