前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Rabbit 过期时间 (TTL)

Rabbit 过期时间 (TTL)

原创
作者头像
清风冷影
修改2019-07-16 17:57:10
1.6K0
修改2019-07-16 17:57:10
举报
文章被收录于专栏:个人技术栈
代码语言:java
复制
TTL, Time to Live 的简称,即过期时间 。 RabbitMQ 可以对消息和队列设置 TTL 。
  • 设置消息的 TTL
代码语言:javascript
复制
目前有两种方法可以设置消息的 TTL。第一种方法是通过队列属性设置,队列中所有消息
都有相同的过期时间。第二种方法是对消息本身进行单独设置,每条消息的 TTL 可以不同。 如果两种方法同时使用,则消息的
TTL以两者之间较小的那个数值为准。消息在队列中的生存时间一旦超过设置 的 TTL 值时,
就会变成"死信" (Dead Message) ,消费者将无法再收到该消息 (不是绝对的)
代码语言:javascript
复制
通过队列属性设置消息 TTL 的方法是在 channel.queueDeclare 方法中加入
x-message -ttl 参数实现的,这个参数的单位是毫秒。

用于表示过期时间的 x-expires 参数以毫秒为单位 , 井且服从和 x-message-ttl 一样
的约束条件,不过不能设置为 0。比如该参数设置为 1 000 ,则表示该队列如果在 1 秒钟之内未
使用则会被删除。
代码语言:javascript
复制
 Map<String, Object> argss = new HashMap<String, Object>();
 //创建一个6000ms的消息
 argss.put("x-message-ttl", 6000);
// 创建一个过期时间为 30 分钟的队列:
// argss.put("x-expires", 1800000);
 // 持久化的 非排他的  非自动删的队列
 channel.queueDeclare(QUEUE_NAME, true, false, false, argss);

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档