Atitit Queue consum algo 队列消费算法fifo lifo ro目录1. 队列消费算法 11.1. FIFO 先入先出 11.2. LIFO 后入先出 不能多开 1

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. 数据分类分别处理

  1. 队列消费算法

如果基于数据库表存储数据,那么可以使用sql dsl来进行数据筛选消费

    1. FIFO 先入先出

Sql语言的  order by created_at

实现即可

此不能多开,只适合单开

    1. LIFO 后入先出 不能多开

Ordrby实现倒排

    1. RO随机出列消费 ,可多开

order by rand()

随机排序

此算法适合多任务多开模式(多进程多线程等)

    1. 其他综合 顺序+片区法
  1. 队列消费问题
    1. 防止数据消息消费不到

如果只用fifo或lifo,在数据量不断增多的情况下,可能会存在数据永远消费不到的情况。。

    1. 多开问题,使用 随机出列算法 以及其他方法解决

    1. 重要标识消息可以单独处理分离处理
    2. 消息优先级别标识可以增加
    3. 数据分类分别处理
posted @ 2021-07-06 00:12  attilaxAti  阅读(52)  评论(0编辑  收藏  举报