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

延迟消息的源码分析

作者: 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