Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
guillep2k 64029e1468
Update lunny/levelqueue to 0.3.0 (#11285)
před 4 roky
..
.drone.yml upgrade levelqueue to 0.1.0 (#9192) před 4 roky
.gitignore Add Unique Queue infrastructure and move TestPullRequests to this (#9856) před 4 roky
LICENSE upgrade levelqueue to 0.1.0 (#9192) před 4 roky
README.md Add Unique Queue infrastructure and move TestPullRequests to this (#9856) před 4 roky
error.go Add Unique Queue infrastructure and move TestPullRequests to this (#9856) před 4 roky
go.mod Update lunny/levelqueue to 0.3.0 (#11285) před 4 roky
go.sum Update lunny/levelqueue to 0.3.0 (#11285) před 4 roky
queue.go Update lunny/levelqueue to 0.3.0 (#11285) před 4 roky
set.go Update lunny/levelqueue to 0.3.0 (#11285) před 4 roky
uniquequeue.go Update lunny/levelqueue to 0.3.0 (#11285) před 4 roky

README.md

levelqueue

Level queue is a simple queue golang library base on go-leveldb.

Build Status

Installation

go get gitea.com/lunny/levelqueue

Usage

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.

Creating Queues, UniqueQueues and Sets from already open DB

If you have an already open DB you can create these from this using the NewQueue, NewUniqueQueue and NewSet functions.