Files
queue/README.md
Кобелев Андрей Андреевич 557fb40268 Change package path
2025-10-14 12:53:46 +05:00

78 lines
1.6 KiB
Markdown

# queue
[![Go Reference](https://pkg.go.dev/badge/git.belvedersky.ru/queue.svg)](https://pkg.go.dev/git.belvedersky.ru/queue)
Simple and lightweight queue implementation in Go with optional Dead Letter Queue (DLQ) support.
Repository:
https://git.belvedersky.ru/belvedersky/queue
## Installation
go get git.belvedersky.ru/queue
## Usage
Basic example:
package main
import (
"fmt"
"git.belvedersky.ru/queue"
)
func main() {
q := queue.NewQueue
q.Push(1)
q.Push(2)
for !q.Empty() {
item := q.Pop()
fmt.Println(item)
}
}
## Dead Letter Queue Example
See examples/example_dlq_test.go:
mainQ := queue.NewQueue
dlq := queue.NewQueue
mainQ.SetDLQ(dlq)
## Examples
Full examples are available in:
https://git.belvedersky.ru/belvedersky/queue/src/branch/main/examples
Includes:
- examples/example_basic_test.go
- examples/example_dlq_test.go
- examples/example_parallel_test.go
## Benchmarks
```bash
goos: darwin
goarch: arm64
pkg: git.belvedersky.ru/belvedersky/queue
cpu: Apple M1 Pro
BenchmarkProduceConsume/workers_1-10 9488 118244 ns/op 8 B/op 1 allocs/op
BenchmarkProduceConsume/workers_4-10 40800 29371 ns/op 8 B/op 1 allocs/op
BenchmarkProduceConsume/workers_16-10 163110 7340 ns/op 8 B/op 1 allocs/op
BenchmarkTryProduce-10 1610434 774.8 ns/op 520 B/op 7 allocs/op
PASS
ok git.belvedersky.ru/belvedersky/queue 6.574s
```
## License
MIT