前言

rocetMQ支持时间延迟发送,不过是固定时间,可以考虑进行精确事件发送。

rocketMQ实现

延迟发送代码:

  1. int level = 3;
  2. message.setDelayTimeLevel();

这是rocketMQ的发送代码。

实现方式:将发送的消息topic进行替换,放到level级别的scheduleTopic当中。时间一到,轮询对应level的scheduleTopic取出来,恢复消息进行发送。减少了排序。

TimeWheel实现

可以采取timeWheel,具体查看参考

参考