美文网首页
延迟消息的源码分析

延迟消息的源码分析

作者: Britney_z | 来源:发表于2021-10-15 09:17 被阅读0次

我们看下MessageStoreConfig 类 默认 private String messageDelayLevel ="1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h";

我们看下asyncPutMessage方法,真正存储的时候,topic变成SCHEDULE_TOPIC_XXXX 实际上queueId对应的是延迟级别,例如delaylevel等于10,则queueId等于9。每个queueId则代表一个delayLevel

在创建consumeQueue队列的时候,我们看下checkMessageAndReturnSize这个方法,tagcode生成的方法

发送时间为存储时间+延迟时间

我们看下ScheduleMessageService的executeOnTimeup方法,如果发送时间小于当前时间,则取出消息,将真正的topic commit。

大概100ms 遍历一次

相关文章

网友评论

      本文标题:延迟消息的源码分析

      本文链接:https://www.haomeiwen.com/subject/gwfuoltx.html