rabbitmq中TTL最长时间设置的,又一个问题

下边这段代码是配置的mq的延迟队列(TTL+死信),有个关于TTl时间的问题,
<!--设置队列的过期时间-->

        <entry key="x-message-ttl" value="20000" value-type="java.lang.Integer"></entry>

其中我把value=20000设置成了20s,但是我想要把延迟设计为1个月甚至更长,根据我目前掌握的情报,时间的最大值应该是int的最大值,要是我把1个月的时间换算成毫秒后,这个数值将会大于int的值,那么延迟一个月的功能就无法实现了??

原配置如下:

<!--下边是正常交换机、死信交换机和队列的绑定*-->

<!--定义队列(发布/订阅模式);处理资产任务的交换机
   topic_queue_ziChanTuiSong:正常消息的队列,消息到达后;如果有消费者,直接消费,不做延迟;
   topic_queue_yanChi:延迟队列,消息到达后进入延迟队列中(TTL+死信队列)
-->
<rabbit:queue id="topic_queue_ziChanTuiSong" name="topic_queue_ziChanTuiSong" auto-declare="true"></rabbit:queue>
<rabbit:queue id="topic_week_queue_two" name="topic_week_queue_two" auto-declare="true"></rabbit:queue>
<!--队列绑定死信交换机-->
<rabbit:queue id="topic_queue_yanChi" name="topic_queue_yanChi" auto-declare="true">
    <rabbit:queue-arguments>
        <!--设置队列的过期时间-->
        <entry key="x-message-ttl" value="20000" value-type="java.lang.Integer"></entry>
        <!--将该队列,绑定到死信交换机上,两步走:1、直接绑定到死信交换机上 2、绑定到死信交换机上的一个路由上-->
        <entry key="x-dead-letter-exchange" value="Exchange_tuiSong_yanChi"></entry>
        <entry key="x-dead-letter-routing-key" value="sixin_week.queue.one"></entry>
    </rabbit:queue-arguments>
</rabbit:queue>
<!--队列绑定死信交换机-->
<rabbit:queue id="topic_week_queue_two_yanchi" name="topic_week_queue_two_yanchi" auto-declare="true">
    <rabbit:queue-arguments>
        <!--设置队列的过期时间-->
        <entry key="x-message-ttl" value="20000" value-type="java.lang.Integer"></entry>
        <!--将该队列,绑定到死信交换机上,两步走:1、直接绑定到死信交换机上 2、绑定到死信交换机上的一个路由上-->
        <entry key="x-dead-letter-exchange" value="Exchange_tuiSong_yanChi"></entry>
        <entry key="x-dead-letter-routing-key" value="sixin_week.queue.two"></entry>
    </rabbit:queue-arguments>
</rabbit:queue>
<!--正常的交换机-->
<rabbit:topic-exchange name="Exchange_tuiSong">
    <rabbit:bindings>
        <!--路由键是week.queue.one-->
        <!--正常队列,消息拿到后立刻消费-->
        <rabbit:binding pattern="week.queue.one" queue="topic_queue_ziChanTuiSong" ></rabbit:binding>
        <!--正常消息指定的延迟队列,这个队列后期会和死信队列绑定到一起-->
        <rabbit:binding pattern="week.queue.one" queue="topic_queue_yanChi" ></rabbit:binding>
        <!--路由键是week.queue.two-->
        <!--正常队列,(相当于日志)把消息存储在已分配任务列表中-->
        <rabbit:binding pattern="week.queue.two" queue="topic_week_queue_two" ></rabbit:binding>
        <!--正常消息指定的延迟队列,这个队列后期会和死信队列绑定到一起-->
        <rabbit:binding pattern="week.queue.two" queue="topic_week_queue_two_yanchi" ></rabbit:binding>
    </rabbit:bindings>
</rabbit:topic-exchange>

<!--死信队列-->
<rabbit:queue id="topic_queue_sixin" name="topic_queue_sixin" auto-declare="true"/>
<!--死信队列two-->
<rabbit:queue id="topic_queue_sixin_two" name="topic_queue_sixin_two" auto-declare="true"/>
<!--死信交换机-->
<rabbit:topic-exchange name="Exchange_tuiSong_yanChi">
    <rabbit:bindings>
       <rabbit:binding pattern="sixin_week.queue.one" queue="topic_queue_sixin"></rabbit:binding>
        <rabbit:binding pattern="sixin_week.queue.two" queue="topic_queue_sixin_two"></rabbit:binding>
    </rabbit:bindings>
</rabbit:topic-exchange>
阅读 1.8k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题