适用场景
适用于定时向用户发送提醒信息,订单超时自动关闭等
使用方法
RocketMQ延时消息就是生产端发送时,可以为消息指定一个延迟级别的消息属性,指定该条消息在指定时间后才能被消费端收到
public void setDelayTimeLevel(int level) {
this.putProperty(MessageConst.PROPERTY_DELAY_TIME_LEVEL, String.valueOf(level));
}
默认有18个延迟级别,1~18,对应时间如下
1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h
延迟级别是可配的,在broker配置文件中增加一条
messageDelayLevel=1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h 90s
msg.setDelayTimeLevel(19);
如上图发送,消息将在90s后投递