RocketMQ延时24小时如何设置
时间: 2024-03-11 11:49:26 浏览: 107
使用Kotlin+RocketMQ实现延时消息的示例代码
在RocketMQ中,延时级别的最大值为18,对应的延时时间最大为2个小时。如果需要设置24小时的延时,可以通过设置多个延时级别的方式来实现。
假设要设置24小时的延时,可以将消息的延时级别设置为18,即2小时,然后通过RocketMQ的定时消息功能,每隔2小时发送一次消息,以达到24小时延时的效果。
以下是示例代码:
```java
Message message = new Message("TopicTest", "TagA", "Hello RocketMQ".getBytes());
// 延时级别为18,即2小时
message.setDelayTimeLevel(18);
// 设置定时消息,每隔2小时发送一次
for (int i = 0; i < 12; i++) {
SendResult sendResult = producer.send(message);
System.out.printf("%s%n", sendResult);
Thread.sleep(2 * 60 * 60 * 1000); // 等待2小时
}
```
以上代码中,设置了消息的延时级别为18,即2小时,然后通过循环发送消息的方式,每隔2小时发送一次,以达到24小时延时的效果。需要注意的是,定时消息的发送时间是相对于Broker节点的系统时间而言的,因此需要确保Broker节点的系统时间是准确的。
阅读全文