RocketMQ 支持发送延迟消息但不支持任意时间的延迟消息的设置一下,仅支持内置预设值的延迟时间间隔的延迟消息
在消息创建的时候,调用 setDelayTimeLevel(int level) 方法设置一下延迟时间broker在接收箌延迟消息的时候会把对应延迟级别的消息先存储到对应的延迟队列中,等延迟消息时间到达时会把消息重新存储到对应的topic的queue里面。
用戶只需要设置一下延迟级别然后通过 delayLevelTable 就知道该级别对应的延迟时间是多少。
// 为每一个延迟级别设置一下一个定时任务处理消息的投递从這里看出如果是延迟消息,则 TagCode 中存储的是消息需要投递到正在消息队列的时间而不是 Tag 的 hashcode 。