如何从
设置消息TTL(非队列)我正在运行RabbitMQ 3.x,Symfony 2.1.x和RabbitMqBundle。
我尝试了什么:
我将邮件属性设置为'x-message-ttl' => 3600000
。在RabbitMQ配置中,它看起来像这样:
{
"name": "blah_queue",
"vhost": "foobar",
"durable": true,
"auto_delete": false,
"arguments": {
'x-message-ttl' => 3600000
}
},
这是我得到的错误:
PRECONDITION_FAILED - inequivalent arg 'x-message-ttl'for queue
我尝试在config.yml中设置(symfony / https://github.com/videlalvaro/RabbitMqBundle / README)
这给捆绑使用的AMQP库带来了一堆错误。
我尝试修改AMQP库本身以允许x-message-ttl
消息属性,并获得异常Error sending data
。
有没有人使用RabbitMQBundle设置Message TTL?
queue_options: {name: 'blah_queue', arguments: {'x-message-ttl' => 3600000}}
答案 0 :(得分:1)
queue_options: {name: 'blah_queue', arguments: {'x-message-ttl' : ['I', '3600000']}}
答案 1 :(得分:0)
我可以像RabbitMq管理控制台那样设置队列消息的生存时间:
我在Fedora Linux上使用RabbitMQ 3.1.5,请在浏览器中访问:
点击“队列”标签,然后向下滚动到“添加新队列”
在小节:“添加新队列”下,填写以下文本框:
Virtual host: /
Name: myqueue1
Durability: Durable
Auto delete: No
Message TTL:
Auto expire:
Max length:
Dead letter exchange:
Dead letter routing key:
Argument key = x-message-ttl
Argument value = 3600000
Argument datatype = number
单击“确定”保存。
现在我可以从队列中消费,消息仍然会在指定的时间内消失。