rabbitmq队列中全局消息过期配置

工作需要使用rabbitmq发送消息对列,因为要在server程序,pad端和pc端都要求消息过期时间,所以就要求在rabbit上设置全局过期时间,在网上看了几篇文章,写的都不明确,设置不能生效,我决定自己测试以下

  • 官网定义rabbitmq队列中全局消息过期配置_第1张图片

 在服务器可以直接执行:rabbitmqctl set_policy TTL ".*" '{"message-ttl":60000}' --apply-to queues

提示成功添加,但是在实际测试中未能生效,消息超时后仍然能被消费,卧槽

 

 仔细看了下命令说明:

#添加
rabbitmqctl set_policy [-p ] [--priority ] [--apply-to    
#清除
rabbitmqctl clear_policy [-p 
#查看
rabbitmqctl list_policies [-p ]

命名是要明确指定生效的vhost的,这下算是明白,赶紧写了一条,一定要指定-p 

rabbitmqctl set_policy -p /25 TTL ".*" '{"message-ttl":8000}' --apply-to queues

显示添加成功了。

其实在rabbitmq管理端也可以添加,更方便

rabbitmq队列中全局消息过期配置_第2张图片

可以看到我们添加的已经生效了,在此之后的连接都已经遵循新策略

rabbitmq队列中全局消息过期配置_第3张图片

 


 

 

你可能感兴趣的:(linux操作系统,应用部署,rabbitmq,队列)