1
0
Fork 0

Queue comments

master
Philip O'Toole 2 years ago
parent 5e9cf86de8
commit ae56b1bec2

@ -6,6 +6,7 @@ import (
"github.com/rqlite/rqlite/command"
)
// Queue is a batching queue with a timeout.
type Queue struct {
maxSize int
batchSize int
@ -20,6 +21,7 @@ type Queue struct {
flush chan struct{}
}
// New returns a instance of a Queue
func New(maxSize, batchSize int, t time.Duration) *Queue {
q := &Queue{
maxSize: maxSize,
@ -37,8 +39,7 @@ func New(maxSize, batchSize int, t time.Duration) *Queue {
return q
}
// Requests or ExecuteRequests? Gotta be requests, and merge inside single ER. Maybe just
// needs to be Statements
// Write queues a request.
func (q *Queue) Write(stmt *command.Statement) error {
if stmt == nil {
return nil
@ -47,17 +48,20 @@ func (q *Queue) Write(stmt *command.Statement) error {
return nil
}
// Flush flushes the queue
func (q *Queue) Flush() error {
q.flush <- struct{}{}
return nil
}
// Close closes the queue. A closed queue should not be used.
func (q *Queue) Close() error {
close(q.done)
<-q.closed
return nil
}
// Depth returns the number of queue requests
func (q *Queue) Depth() int {
return len(q.batchCh)
}

Loading…
Cancel
Save