消息队列在实现过程中,主要由一下7
个管理队列组成:
名称 | 说明 | 生命周期 |
---|---|---|
confirm | 待确认队列 | 确认有效期内 |
waiting | 等待消费队列 | 确认通过/普通投递/延迟时间结束后 |
reserved | 正在消费队列 | 等待消费转入 |
delayed | 延迟消费队列 | 延迟时间内 |
failed | 消费失败队列 | Job-handle 返回false ,又或者处理过程发生异常错误时 |
timeout | 消息超时队列 | Job-handle 消费耗时,超过outtime 配置时(该队列不代表消费逻辑执行结果,只标识执行超时) |
entity | 记录Job 序列化实体 |
队列消费成功前全局有效 |
使用消息队列大体可分为3
个步骤:
Job
对象,并在其中定义好handle()
消息消费逻辑。\x\Queue
组件,投递到队列中。\x\Queue
组件的pop
方法,取出一条等待消费的消息(Job
),执行Job->run()
进行消费逻辑释放,完成消费。
如果还不够清晰,可以参考下面的架构图: