36 lines
627 B
Go
36 lines
627 B
Go
package queue_test
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"time"
|
|
|
|
"git.belvedersky.ru/queue"
|
|
)
|
|
|
|
// Example_basic демонстрирует базовое использование очереди.
|
|
func Example_basic() {
|
|
type Task struct{ ID int }
|
|
|
|
q := queue.NewQueue[Task](5)
|
|
q.Register(func(t Task) {
|
|
fmt.Printf("Handled task %d\n", t.ID)
|
|
time.Sleep(50 * time.Millisecond)
|
|
})
|
|
|
|
ctx := context.Background()
|
|
q.HandleParallel(ctx, 1)
|
|
|
|
for i := range 5 {
|
|
q.Produce(Task{ID: i})
|
|
}
|
|
|
|
q.Shutdown(context.Background())
|
|
// Output:
|
|
// Handled task 0
|
|
// Handled task 1
|
|
// Handled task 2
|
|
// Handled task 3
|
|
// Handled task 4
|
|
}
|