1.延时处理特性
描述:rabbitmq支持,消息发出后,消费者延迟指定时间才拿到消息进行消费
使用场景:(1)订单下单时,付款时间限定在30分钟内,超时进行一些操作
(2)用户通过手机端远程控制智能设备指定时间工作
实现方案
1.通过TTL(Time To Live) 和DLX(Dead Letter Exchanges)属性实现
TTL:设置过期时间,时间到了自动变为死信,可针对Queue设置x-message-ttl或者Message设置AMQP.Properties的expiration属性可以指定消息的过期时间,若两者同时设置,以最先到期时间为准
示例:
消息设置x-Message-TTL:
byte[] message = "setExpiration Message!".getBytes();
AMQP.BasicProperties properties = new AMQP.BasicProperties();
properties.setExpiration("30000");//设置消息的过期时间为30秒
channel.basicPublish("my-exchange"