Documentation
¶
Index ¶
- func WithRetryCount(count int) interface{}
- type DelayQueue
- func (q *DelayQueue) SendDelayMsg(payload string, duration time.Duration, opts ...interface{}) error
- func (q *DelayQueue) SendScheduleMsg(payload string, t time.Time, opts ...interface{}) error
- func (q *DelayQueue) StartConsume() (done <-chan struct{})
- func (q *DelayQueue) StopConsume()
- func (q *DelayQueue) WithFetchInterval(d time.Duration) *DelayQueue
- func (q *DelayQueue) WithFetchLimit(limit uint) *DelayQueue
- func (q *DelayQueue) WithLogger(logger *log.Logger) *DelayQueue
- func (q *DelayQueue) WithMaxConsumeDuration(d time.Duration) *DelayQueue
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func WithRetryCount ¶
func WithRetryCount(count int) interface{}
WithRetryCount set retry count for a msg example: queue.SendDelayMsg(payload, duration, delayqueue.WithRetryCount(3))
Types ¶
type DelayQueue ¶
type DelayQueue struct {
// contains filtered or unexported fields
}
DelayQueue is a message queue supporting delayed/scheduled delivery based on redis
func NewQueue ¶
func NewQueue(name string, cli *redis.Client, callback func(string) bool) *DelayQueue
NewQueue creates a new queue, use DelayQueue.StartConsume to consume or DelayQueue.SendScheduleMsg to publish message callback returns true to confirm successful consumption. If callback returns false or not return within maxConsumeDuration, DelayQueue will re-deliver this message
func (*DelayQueue) SendDelayMsg ¶
func (q *DelayQueue) SendDelayMsg(payload string, duration time.Duration, opts ...interface{}) error
SendDelayMsg submits a message delivered after given duration
func (*DelayQueue) SendScheduleMsg ¶
func (q *DelayQueue) SendScheduleMsg(payload string, t time.Time, opts ...interface{}) error
SendScheduleMsg submits a message delivered at given time
func (*DelayQueue) StartConsume ¶
func (q *DelayQueue) StartConsume() (done <-chan struct{})
StartConsume creates a goroutine to consume message from DelayQueue use `<-done` to wait consumer stopping
func (*DelayQueue) StopConsume ¶
func (q *DelayQueue) StopConsume()
StopConsume stops consumer goroutine
func (*DelayQueue) WithFetchInterval ¶
func (q *DelayQueue) WithFetchInterval(d time.Duration) *DelayQueue
WithFetchInterval customizes the interval at which consumer fetch message from redis
func (*DelayQueue) WithFetchLimit ¶
func (q *DelayQueue) WithFetchLimit(limit uint) *DelayQueue
WithFetchLimit limits the max number of messages at one time
func (*DelayQueue) WithLogger ¶
func (q *DelayQueue) WithLogger(logger *log.Logger) *DelayQueue
WithLogger customizes logger for queue
func (*DelayQueue) WithMaxConsumeDuration ¶
func (q *DelayQueue) WithMaxConsumeDuration(d time.Duration) *DelayQueue
WithMaxConsumeDuration customizes max consume duration If no acknowledge received within WithMaxConsumeDuration after message delivery, DelayQueue will try to deliver this message again