rocketmq实现延迟队列精确到秒级实现方案4-基于rocketmq 默认支持18个等级来改造
rocketmq开源版本支持18个等级的延迟方案,
如果要支持任意时间延时,
可以基于rocketmq已有的level来改造,传入一个时间,计算出最接近的等级,投递出去,当消息到达时候,
判断是否到了时间,如果没有,继续计算出最接近的等级投递,一直到超时时间为止
这个方案有个缺陷,在没有到达超时时间,同一个消息会出现多次投递的情况。
开源rocketmq延迟队列实现:
https://gitee.com/venus-suite/rocketmq-with-delivery-time.git