通过BRPop命令, 我们可以阻塞的等待读取一个列表的最右侧元素.
所以消费者例程无限的阻塞等待消息
for {
if messSlice, err = service.BRPop(code.RRequestPortalMess, 0); err != nil {
global.Logger.Errorf("从Redis读取Request Portal消息失败:%v", err)
continue
}
// 说明读取到的消息不对
if len(messSlice) != 2 {
continue
}
// redis返回的消息的索引1的数据是消息本身
mess = messSlice[1]
}
生产者例程可以直接通过LPush方法推送消息到列表的最左侧
发表回复