Documentation
¶
Overview ¶
例子
c := NewConsumer("localhost:11130", "test")
handle := func(ctx context.Context, job *beans.Job, tried int) bool{ // 处理结束后返回true删除数据 return true }
开启两个队列去并发读取 go c.Reserve(20*time.Minute, handle) // go c.Reserve(20*time.Minute, handle) // 警告:目前beanstalkd消费者并发连接读取测试未通过, 多线程读取时注意去重操作
// 在适当的地方关闭连接 // c.Close() // Stop func to stop working
Index ¶
Constants ¶
View Source
const MAX_TRY_TIMES = 48 + 30 + 1
最大推送次数
Variables ¶
View Source
var ErrClosed = errors.New("msq: closed")
ErrClosed closed by Close
Functions ¶
func IsErrNotFound ¶
Types ¶
type Consumer ¶
type Consumer interface { io.Closer // reserveOut -- 与服务器连接的存活检查时间 // handle -- 接收处理函数 Reserve(reserveOut time.Duration, handle HandleContext) error }
func NewConsumer ¶
type HandleContext ¶
若发送不成功 返回true删除beanstalkd队件数据,否则不删除在一定时间后放回到就绪队中再次读取以便达到重试的效果。 重试机制分别间隔以1次3秒钟、30次每分钟、48次每小时再次尝试发送, 若48小时后未能发送成功,数据将被强制删除。 已放回就绪队列的次数通过tried进行了推送
Click to show internal directories.
Click to hide internal directories.