Are you sure you want to delete this task? Once this task is deleted, it cannot be recovered.
|
|
3 years ago | |
|---|---|---|
| .. | ||
| .drone.yml | 6 years ago | |
| .gitignore | 5 years ago | |
| LICENSE | 6 years ago | |
| README.md | 5 years ago | |
| error.go | 5 years ago | |
| go.mod | 5 years ago | |
| go.sum | 5 years ago | |
| queue.go | 5 years ago | |
| set.go | 5 years ago | |
| uniquequeue.go | 5 years ago | |
Level queue is a simple queue golang library base on go-leveldb.
go get gitea.com/lunny/levelqueue
queue, err := levelqueue.Open("./queue")
err = queue.RPush([]byte("test"))
// pop an element from left of the queue
data, err = queue.LPop()
// if handle success, element will be pop, otherwise it will be keep
queue.LHandle(func(dt []byte) error{
return nil
})
You can now create a Set from a leveldb:
set, err := levelqueue.OpenSet("./set")
added, err:= set.Add([]byte("member1"))
has, err := set.Has([]byte("member1"))
members, err := set.Members()
removed, err := set.Remove([]byte("member1"))
And you can create a UniqueQueue from a leveldb:
queue, err := levelqueue.OpenUnique("./queue")
err := queue.RPush([]byte("member1"))
err = queue.LPush([]byte("member1"))
// Will return ErrAlreadyInQueue
// and so on.
If you have an already open DB you can create these from this using the
NewQueue, NewUniqueQueue and NewSet functions.
No Description
Go SVG JavaScript Vue Roff other