rabbitmq-设置队列全局过期时间后不能发送消息

最开始创建队列能正常发送消息,是这样的:

能正常发送,当把上面的注释放开后,则不能发送消息,报如下错误:

com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=406, reply-text=PRECONDITION_FAILED - inequivalent arg ‘x-message-ttl‘ for queue ‘top.name3‘ in vhost ‘/‘: received the value ‘10000‘ of type ‘long‘ but current is none, class-id=50, method-id=10)
	at com.rabbitmq.client.impl.ChannelN.asyncShutdown(ChannelN.java:516) ~[amqp-client-5.4.3.jar:5.4.3]
	at com.rabbitmq.client.impl.ChannelN.processAsync(ChannelN.java:346) ~[amqp-client-5.4.3.jar:5.4.3]
	at com.rabbitmq.client.impl.AMQChannel.handleCompleteInboundCommand(AMQChannel.java:178) ~[amqp-client-5.4.3.jar:5.4.3]
	at com.rabbitmq.client.impl.AMQChannel.handleFrame(AMQChannel.java:111) ~[amqp-client-5.4.3.jar:5.4.3]
	at com.rabbitmq.client.impl.AMQConnection.readFrame(AMQConnection.java:670) ~[amqp-client-5.4.3.jar:5.4.3]
	at com.rabbitmq.client.impl.AMQConnection.access$300(AMQConnection.java:48) ~[amqp-client-5.4.3.jar:5.4.3]
	at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:597) ~[amqp-client-5.4.3.jar:5.4.3]
	at java.lang.Thread.run(Thread.java:745) [na:1.8.0_92]

 

解决:

进入mq控制台删除该队列,重启应用程序

原文地址:https://www.cnblogs.com/longyao/p/12162880.html

时间: 2024-10-08 00:42:34

rabbitmq-设置队列全局过期时间后不能发送消息的相关文章

Django设置Cookie的过期时间expires, max_age的格式

cookie中 max_age和expires的关系: 1. 若没有填写 max_age, expires ,默认都为None 此时该cooike为临时的,只存在浏览器内存中, 关闭浏览器则自动删除 2. 只有max_age, 则按秒计算过期时间, 浏览器会存在本地缓存路径, 并自动删除过期cookie 3. 只有expires, 则按照时间字符串计算过期时间, 浏览器会存在本地缓存路径, 自动删除过期cookie 3. 若 max_age和 expires 同时存在, 则默认使用 max_ag

java设置配置session过期时间的方法

1) Timeout in the deployment descriptor (web.xml)以分钟为单位 代码如下 复制代码 <web-app ...> <session-config> <session-timeout>20</session-timeout> </session-config></web-app> 上面这种设置,对整个web应用生效.当客户端20分钟内都没有发起请求时,容器会将session干掉. 2) Ti

Python操作Redis之设置key的过期时间

对于一个已经存在的key,我们可以设置其过期时间,到了那个时间后,当你再去访问时,key就不存在了 有两种方式可以设置过期时间,一种是指定key从当前时间开始算起还能存活多久,时间单位有两个,一个是秒,一个是毫秒 第二种方式是指定key在某一个时间失效,这需要指定明确的年月日时分秒,如果你指定的这个时间已经早于当前时间,那么这个key会立即失效 现在,我们现在redis中添加两个key,分别为ex1 和 ex2 然后分别用两种不同的方式设置其过期时间 # coding=utf-8 ''' Cre

thinkphp3.2设置session的过期时间

thinkPHP3.2中session的过期时间配置是不能使用的,我们需要修改一下它的配置文件thinkPHP>common>functions.php,找到这一行: if(isset($name['expire'])) ini_set('session.gc_maxlifetime', $name['expire']); 改成: if(isset($name['expire'])) ini_set('session.gc_maxlifetime', $name['expire']);ini_

Thinkphp框架下设置session的过期时间

打开项目中的配置文件,添加session的过期配置,如下: 'SESSION_OPTIONS' => array( 'name' => 'BJYSESSION', //设置session名 'expire' => 3600, //SESSION过期时间,单位秒 'use_trans_sid' => 1, //跨页传递 'use_only_cookies' => 0, //是否只开启基于cookies的session的会话方式 ),

使用SpringDataRedis设置key的过期时间

springdataredis的版本: spring-data-redis-1.8.0.RELEASE 设置过期时间调用的方法如下. 第一个参数为key 第二个参数为值 第三个参数为过期时间 千万注意 要以L结尾.代表为Long类型. 否则过期时间不会生效 redisTemplate.opsForValue().set("mykeys", myvalue, 1L, TimeUnit.DAYS); 第四个参数为时间的单位, 我这里设置为天. 代表为key的有效时间为 1天. 时间单位可以

nginx访问日志配置+日志切割+不记录静态文件日志+设置静态文件过期时间

nginx访问日志 查看nginx.conf文件 vim /usr/local/nginx/conf/nginx.conf 中间有一行是定义log的格式 log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]' ' $host "$request_uri" $status' ' "$http_referer" "$http_user_agent"';

怎么设置头文件过期时间为当前时间+1天

window.onload =function(){ //在这里创建一个<META>元素添加到<head>节点.注意去今天的GMT时间,然后+1 var meta; if (document.createElement &&(meta = document.createElement('meta'))){ // 设置属性 meta.setAttribute("http-equiv","expires"); //var expi

设置IIS会话过期时间

打开默认网站----双击ASP--展开会话属性---更改超时时间-