Documentation ¶
Overview ¶
Package boltqueue provides a persistent queue or priority queue based on boltdb (https://github.com/boltdb/bolt)
Priority Queue ¶
boltqueue's PQueue type represents a priority queue. Messages may be inserted into the queue at a numeric priority between 0(highest) and 255(lowest). Messages are dequeued following priority order, then time ordering, with the oldest messages of the highest priority emerging first.
Index ¶
- type Message
- type PQueue
- func (b *PQueue) Close() error
- func (b *PQueue) Dequeue() (*Message, error)
- func (b *PQueue) Drop() error
- func (b *PQueue) Enqueue(priority int, message *Message) error
- func (b *PQueue) Peek() (*Message, error)
- func (b *PQueue) Requeue(message *Message) error
- func (b *PQueue) RequeueAs(priority int, message *Message) error
- func (b *PQueue) Size(priority int) (int, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Message ¶
type Message struct {
// contains filtered or unexported fields
}
Message represents a message in the priority queue
func NewBytesMessage ¶
func NewMessage ¶
NewMessage generates a new priority queue message
type PQueue ¶
type PQueue struct {
// contains filtered or unexported fields
}
PQueue is a priority queue backed by a Bolt database on disk
func (*PQueue) Dequeue ¶
Dequeue removes the oldest, highest priority message from the queue and returns it
func (*PQueue) Drop ¶ added in v1.0.9
Drop removes one message from the queue. Invoke it several times if need to remove more.
func (*PQueue) Peek ¶ added in v1.0.9
Peek get nth message from the queue, without removing it from the queue
func (*PQueue) Requeue ¶
Requeue adds a message back into the queue with the same priority, it should be among the first to dequeue.