Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrQueueClosed = errors.New("queue is closed") ErrQueueFull = errors.New("queue is full") ErrQueueEmpty = errors.New("queue is empty") )
Errors
View Source
var (
DefaultPollInterval = 20 * time.Millisecond
)
Functions ¶
This section is empty.
Types ¶
type MemoryFactory ¶
type MemoryFactory struct {
// contains filtered or unexported fields
}
func NewMemoryFactory ¶
func NewMemoryFactory() *MemoryFactory
func (*MemoryFactory) GetOrCreate ¶
func (f *MemoryFactory) GetOrCreate(name string, maxSize int) Queue
type MemoryQueue ¶
type MemoryQueue struct {
// contains filtered or unexported fields
}
func NewMemoryQueue ¶
func NewMemoryQueue(maxSize int, pollInterval time.Duration) *MemoryQueue
func (*MemoryQueue) Close ¶
func (q *MemoryQueue) Close()
func (*MemoryQueue) Dequeue ¶
func (q *MemoryQueue) Dequeue() ([]byte, error)
func (*MemoryQueue) Enqueue ¶
func (q *MemoryQueue) Enqueue(data []byte) error
func (*MemoryQueue) Kind ¶
func (q *MemoryQueue) Kind() Kind
func (*MemoryQueue) MaxSize ¶
func (q *MemoryQueue) MaxSize() int
func (*MemoryQueue) Recover ¶
func (q *MemoryQueue) Recover(b []byte) error
func (*MemoryQueue) Subscribe ¶
func (q *MemoryQueue) Subscribe(cb Handler)
type Queue ¶
type Queue interface {
Kind() Kind
// Reports max size of queue
MaxSize() int
// Push data to end of queue
// Failed if queue is full or closed
Enqueue([]byte) error
// Pop data from beginning of queue without message confirmation
// Failed if queue is empty
Dequeue() ([]byte, error)
// Subscribe queue with message confirmation.
// Once handler returns error, it'll automatically put message back to queue using `Recover` mechanism internally.
Subscribe(h Handler)
}
The interface of queue The implementation of queue should be thread-safe
type RecoverableQueue ¶
type SafeQueue ¶
type SafeQueue struct {
// contains filtered or unexported fields
}
func NewSafeQueue ¶
func (*SafeQueue) IsRecoverable ¶
Click to show internal directories.
Click to hide internal directories.