首页 > 其他分享 >延时方案

延时方案

时间:2022-12-29 11:35:02浏览次数:27  
标签:方案 队列 queue delay 延时 ready 执行

数据库轮循

原理:定时间隔一定时间查询数据库,获取即将到期的任务执行

缺点:时效性差(间隔指定时间查询,难以做到准时)、任务量大会有风险(比如某次数据量过大,可能这个间隔时间都没执行完下次又执行了)

 

redis+数据库

redis分成delay queue和ready queue两块,  server会查询快到期的delay queue中的任务放到ready queue中,然后执行

delay queue;使用zset键值对存储,key存时间 value存消息指定的索引

ready queue:使用list存储,只存储索引

缺点: 

 

 

 

RocketMq

RocketMq原生的延时方案只支持18个level的延时,

producer发送消息给commit log,正常消息放正常队列直接被消费即可,

如果是延时消息会被放到延时消息队列,延时队列根据时间间隔分为18个level,到期后会被放到queue等待执行

 

标签:方案,队列,queue,delay,延时,ready,执行
From: https://www.cnblogs.com/zhougongjin/p/17012046.html

相关文章