Atitit Queue consum algo 队列消费算法fifo lifo ro
目录
1. 队列消费算法
1.1. FIFO 先入先出
1.2. LIFO 后入先出 不能多开
1.3. RO随机出列消费 ,可多开
1.4. 其他综合 顺序+片区法
2. 队列消费问题
2.1. 防止数据消息消费不到
2.2. 多开问题,使用 随机出列算法 以及其他方法解决
2.3. 重要标识消息可以单独处理分离处理
2.4. 消息优先级别标识可以增加
2.5. 数据分类分别处理
- 队列消费算法
如果基于数据库表存储数据,那么可以使用sql dsl来进行数据筛选消费
-
- FIFO 先入先出
Sql语言的 order by created_at
实现即可
此不能多开,只适合单开
-
- LIFO 后入先出 不能多开
Ordrby实现倒排
-
- RO随机出列消费 ,可多开
order by rand()
随机排序
此算法适合多任务多开模式(多进程多线程等)
-
- 其他综合 顺序+片区法
- 队列消费问题
- 防止数据消息消费不到
如果只用fifo或lifo,在数据量不断增多的情况下,可能会存在数据永远消费不到的情况。。
-
- 多开问题,使用 随机出列算法 以及其他方法解决
-
- 重要标识消息可以单独处理分离处理
- 消息优先级别标识可以增加
- 数据分类分别处理